我需要在主窗口类中不更改其他类中的主窗口或本机应用程序大小width x height。我怎么能这样做?
void OptionsDialog::resetWindowLayoutClicked(QResizeEvent* event) {
QMainWindow::resize(640, 483);
}
这是我的第一次尝试,但没有幸福。
答案 0 :(得分:1)
我会发出信号并将其连接到主窗口中的插槽。
例如:
class OptionsDialog : public QDialog
{
Q_OBJECT
signals:
void resize(int w, int h);
};
class MainWindow : public QMainWindow
{
Q_OBJECT
private slots:
void resizeRequest(int w, int h);
};
void OptionsDialog::resetWindowLayoutClicked(QResizeEvent* event)
{
emit resize(640, 483);
}
创建OptionsDialog时,请连接如下信号:
OptionsDialog* d = new OptionsDialog(this);
connect(d, SIGNAL(resize(int,int)), this, SLOT(resizeRequest(int,int)));
并实施插槽:
void MainWindow::resizeRequest(int w, int h)
{
resize(w, h);
}
答案 1 :(得分:0)
你需要获取指向我假设的主窗口类的指针并从中更改它,尝试在新的类构造函数中将指针传递给它。
public OptionsDialog(const QMainWindow * mainWindow) { // class constructor
m_qWinPtr = mainWindow // this is some class member
}
void OptionsDialog::resetWindowLayoutClicked(QResizeEvent* event) {
m_qWinPtr->resize(640, 483);
}