gpt4 book ai didi

c++ - Qt GUI 小部件源文件的重构/分区

转载 作者:行者123 更新时间:2023-11-28 00:32:41 25 4
gpt4 key购买 nike

我创建了一个传统的 Qt(基于小部件)GUI,如下所示:MainWindow::MainWindow(parent) : QMainWindow(parent)

这是由 Qt Creator 设计为窗体 (mainwindow.ui),又名 设计模式。一切正常。但是包含所有小部件、初始化相应模型和功能的 GUI 代码会退出很长时间。我想重构为小单位。我想出的东西:

  1. 我尝试使用专门的(派生的)小部件。示例:创建的 MyTableView::QTableView 包含专用模型,以及模型和小部件之间的信号/槽处理。这减少了 MainWindow 中的代码量。但是,我确实失去了通过 Qt Creator 的 设计模式 设计 GUI 的能力。
  2. 到目前为止,我想到的最好的事情就是泄露源代码(多个 cpp 文件)。它仍然代表一个类,但一个文件中的代码更少。

那么,我怎样才能更好地划分我的 GUI 类?

最佳答案

如果您仍想通过派生小部件解耦小部件的初始化,您可以使用 Qt 设计器中的“提升到...”选项。步骤:

  1. class MyTableView : public QTableView {},因此 TableView 的初始化被移至 MyTableView 的构造函数。
  2. 在 Qt Designer 中,打开 ui 窗体 (MainWidow.ui),然后在其上拖放一个 QTableView;
  3. 鼠标右键单击QTableView,在提示菜单中,有一个“提升为”选项,打开它
  4. 在“promoting widget”对话框中,指定自定义QTableView的类名和头文件,比如MyTableView、MyTableView.h。此步骤需要现有的自定义类和头文件。

借用一张图: http://developer.nokia.com/community/wiki/images/thumb/9/90/MBA_promote_to.png/800px-MBA_promote_to.png

关于c++ - Qt GUI 小部件源文件的重构/分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22213178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com