我正在使用Qt Designer创建一个Qt 5.4 GUI应用程序(实际上,我正在使用Qt Creator 3.3.2但还没有完成任何C ++;一切都在.ui文件中)。
我想创建一个包含(空)项目列表的框,用户可以在框中双击以向列表中添加新元素(可以单击或其他,无关紧要) )。
我只是无法通过设计师弄清楚如何做到这一点。我已经检查了“List Widget(基于项目)”和“List View(基于模型)”的属性,“editTriggers”中有一些选项,但即使选中了默认的“DoubleClicked”,编译的应用程序也是如此不允许添加新元素(或删除...)
使用仅设计器(不使用C ++)实现此目的的任何简单方法?
或者是否有另一个小部件更适合这个?
谢谢!
答案 0 :(得分:2)
如果你想制作这样一个小部件,只能在设计师中完全设置,你会问得太多。
如果你从一个List Widget
开始并添加一堆空的命名元素,然后使所有这些元素都可编辑,那么你似乎只需双击即可添加一个元素。
要使您在列表中添加的现有元素可编辑,(在设计器中)双击列表小部件,然后
在Edit Widget List
中,点击加号,然后点击Properties
。向下滚动到flags
,然后选中Editable
。
这需要为添加的每个项目手动完成。
添加你要求的C ++是非常无痛的。
添加按钮。将其objectName
重命名为addItemButton
。
然后右键单击它,并选择Go to slot...
。
选择clicked()
,然后点击Ok
。
现在将以下内容放入广告位:
void MainWindow::on_addItemButton_clicked()
{
QListWidgetItem * item = new QListWidgetItem("New Item");
item->setFlags(item->flags() | Qt::ItemIsEditable);
ui->listWidget->addItem(item);
}
完成。
希望有所帮助。