同一行有多个项目的 QT 组合框
Posted
技术标签:
【中文标题】同一行有多个项目的 QT 组合框【英文标题】:QT combobox with multiple items at the same line 【发布时间】:2019-12-12 20:31:47 【问题描述】:上面的按钮框在同一行上有多个项目。这是一个名为 Draftsight 的程序,用 QT 编写。
我有红色方块的按钮框,但我需要更多信息在同一行..
有人知道如何做到这一点吗??
我当前的代码在同一组合框行中添加 2 个项目:
//setup combobox :
QComboBox *colors = new QComboBox;
ui->toolBar_color->addWidget(colors);
colors->setMinimumWidth(150);
//routine to fill the combobox with external data :
colors->clear();
Dialog_color().extern_toolbar_load();
QPixmap pixmap(15,15);
for(int i = 0; i<red_list.size(); i++)
pixmap.fill(QColor (red_list.at(i),green_list.at(i),blue_list.at(i)));
colors->addItem(pixmap, comments.at(i));
所以事实上我需要这样的东西:
colors->addItem(pixmap, pixmap, pixmap, "text", "text");
有办法吗?
【问题讨论】:
我敢打赌,那里没有魔法。如果您将几个较小的像素图组合在一起(通过一点点绘图),它可以设置为“非常长的图标”。您似乎正在这样做,只需修复您的循环......或者解释一下,请解释那些 red_list/green_list 是什么。 【参考方案1】:感谢您的回复,
解释red_list、green_list、blue list。这是用户在表格小部件中设置的 rgb 颜色值。如果从存储用户定义值的文本文件刷新,则在程序启动期间和程序执行期间加载 tablewidget 数据。该对话框尚未完成,但它正在按预期工作。
我也一直在考虑将几个像素图组合成一个长像素图,但它必须是一种自动组合所有 rgb 值和其他值(如线型等)的自动化方式。那么如何自动将多个像素图组合为一个.. 嗯,我必须考虑一下。
他们是如何使用 QT 设计器在 Draftsight 中做到这一点的?默认系统不会提供我认为的解决方案。
欢迎所有输入!
编辑,我找到了一个解决方案。它可以在扩展功能示例时自动组合事物。到目前为止,我对解决方案感到满意。
如果 qt 可以为此进行更新。那样就好了。对于组合框,按下信号也可以代替使用事件过滤器..
//setup combobox..
QComboBox *test = new QComboBox;
ui->toolBar_layer->addWidget(test);
test->setMinimumWidth(150);
test->setMinimumHeight(20);
test->addItem("test item");
test->setIconSize(QSize(100, 15));
//setup picture template..
QPixmap pixmap(100, 15);
pixmap.fill(Qt::transparent);
QPainter painter(&pixmap);
//contruct a picture based on rgb colors..
QPixmap pixmap_1(15,15);
pixmap_1.fill(QColor (255,0,0));
painter.drawPixmap(0, 0, 15, 15, pixmap_1);
//load pictures from file..
painter.drawPixmap(30, 0, 15, 15, QPixmap(":/icons/edit-paste.svg"));
painter.drawPixmap(60, 0, 15, 15, QPixmap(":/icons/terminal.svg"));
painter.end();
test->addItem(pixmap, "combobox");
【讨论】:
以上是关于同一行有多个项目的 QT 组合框的主要内容,如果未能解决你的问题,请参考以下文章