我定義了兩個部件如下Qt中,無法顯示子部件
class mainWindow : public QWidget
{
Q_OBJECT
public:
mainWindow();
void readConfig();
private:
SWindow *config;
QVector <QString> filePath;
QVector <QLabel*> alias,procStatus;
QVector <int> delay;
QGridLayout *mainLayout;
QVector<QPushButton*> stopButton,restartButton;
QVector<QProcess*> proc;
QSignalMapper *stateSignalMapper, *stopSignalMapper, *restartSignalMapper;
public slots:
void openSettings();
void startRunning();
void statusChange(int);
void stopProc(int);
void restartProc(int);
void renew();
};
class SWindow : public QWidget
{
Q_OBJECT
public:
SWindow(QWidget *parent=0);
void readConfig();
void addLine(int);
private:
QVector<QPushButton*> selectButton;
QVector<QLabel*> filePath;
QVector<QLineEdit*> alias;
QSignalMapper *selectSignalMapper;
QVector<QSpinBox*> delay;
QGridLayout *mainLayout;
public slots:
void selectFile(int);
void saveFile();
void addLineSlot();
};
當我創建並從主窗口顯示SWindow對象這樣
void mainWindow::openSettings()
{
config = new SWindow();
config->show();
}
一切正常,但現在我需要從SWindow訪問主窗口,並且
void mainWindow::openSettings()
{
config = new SWindow(this);
config->show();
}
不顯示SWindow。我如何顯示SWindow?
如何在窗口小部件關閉時調用函數?
問題是他爲什麼要這樣做。他試圖從他的'SWindow'類中調用'((mainWindow *)parent()) - > renew()',這是非常糟糕的。 – 2010-04-22 22:51:15