Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Qt-GUI编码方法_Qt_Dialog_Window - Fatal编程技术网

Qt-GUI编码方法

Qt-GUI编码方法,qt,dialog,window,Qt,Dialog,Window,我有一个使用Qt Creator制作的Qt程序。我创建了一个.ui对话框(mainwindow.ui),并在ui编辑器中添加控件和插槽。它们最终在mainwindow.cpp中创建方法 void MainWindow::on_btnRunJohn_clicked() 在这些方法中,我直接访问控件来更新它们 ui->txtConfigFileName->setText("Some text to put in the text box"); 我知道有很多方法可以管理Qt中的窗口对话

我有一个使用Qt Creator制作的Qt程序。我创建了一个.ui对话框(mainwindow.ui),并在ui编辑器中添加控件和插槽。它们最终在mainwindow.cpp中创建方法

void MainWindow::on_btnRunJohn_clicked()
在这些方法中,我直接访问控件来更新它们

ui->txtConfigFileName->setText("Some text to put in the text box");

我知道有很多方法可以管理Qt中的窗口对话框(例如,QML,子类化),但我想知道这种方法是否是次优的,或者在某种程度上限制了事情的发展。这是在Qt中编写代码的合理方法,还是有更好的方法来管理对话框?我很乐意预先定义控件,也就是说,我不需要在运行时添加/删除控件。

实际上,如果您想更改Ui的行为,这是您必须采取的方法

我建议您可以使用多重继承,如下所示:

class A : public QDialog, public Ui::A
{
    // class methods and members
}

这将帮助您轻松地使用Ui小部件。

当然这是合理的……谢谢您-我只是没有在一些示例中直接看到这种方法,我想知道它是否有问题。将继续按原样编码…顺便说一句,Qt Creator中的TextFinder示例简单演示了这种方法。它是QWidget的子类,包含一个连接到更新ui的按钮的插槽。