在Qt中合并多个小部件
Combine multiple widgets into one in Qt
我在一个项目中反复使用一对QComboBox
和QListWidget
。它们的交互是高度耦合的——当在组合框中选择一个项目时,该列表将以某种方式进行过滤。我复制粘贴所有的信号和插槽连接在这两个小部件之间跨多个对话框实现,我不认为这是一个好主意。
是否有可能创建一个自定义小部件,这将保持这两个小部件,并将所有的信号和插槽连接在一个地方?如下所示:
class CustomWidget
{
QComboBox combo;
QListWidget list;
...
};
我想把这个小部件作为一个小部件使用
通常的方法是将QWidget
(或QFrame
)子类化。
class CustomWidget: public QWidget {
Q_OBJECT
CustomWidget(QWidget *parent)
: QWidget(parent) {
combo = new QComboBox(...);
list = new QListWidget(...);
// create the appropriate layout
// add the widgets to it
setLayout(layout);
}
private:
QComboBox *combo;
QListWidget *list;
};
处理该自定义小部件中列表和组合之间的所有交互(通过将适当的信号连接到适当的插槽,可能为此定义自己的插槽)。
然后通过专用信号和插槽公开自定义小部件的行为/API,可能模仿列表和/或组合中的行为/API。
地址簿教程将引导您完成所有这些操作,包括创建自定义小部件并为其定义信号和插槽。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 最小硬币更换问题(自上而下方法)
- Qt VTK交互风格的信号到小部件
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 如何在Qt窗口小部件中使用QStringView(或QStringRef)
- 使用递归的数组的最小值.这是怎么回事
- 为什么在浮点中从大到小会引入更多的误差
- 使用C++程序合并排序没有得到正确的输出
- 找到两对数字,使它们的乘积的绝对差最小化
- 如何使用boost::具有嵌套结构和最小代码更改的序列化
- 最大和最小 1 C++函数
- 如何创建一个函数来计算并返回平均值、最大值和最小值
- 用于合并排序的合并函数
- 我可以做些什么来消除或最小化这种将提供相同功能和行为的代码重复
- 如何修复错误:使用向量查找最小值和最大值进行合并排序
- 删除/最小化GIT合并冲突
- C++ 创建小部件数组
- 将较小的数据块合并到一个较大的内存区中
- 在Qt中合并多个小部件
- 函数合并两个数字列表,并从最小到最大排序