如何使UI对象仅出现在对话框中单击AFTER按钮

时间:2014-03-12 12:42:35

标签: c++ qt user-interface

  1. 我有一个对话框,最初有几个按钮,我们称之为Write,View,OK和Cancel。
  2. 应该在创建 时创建对话框的方式是这三个按钮,仅此而已。
  3. 当取消写入按钮时,它应该在按钮上方的窗口中创建一个QLineEdit对象,用户可以在该按钮中输入新的字符串,然后单击“确定”时将添加外部QStringList
  4. 单击“查看”时, LineEdit 应该消失(如果已经显示)并且 QListView 会出现,而不是查看该列表中的所有内容。< / LI>
  5. 问题是,我知道如何使用hide()来获取对话框中已有的对象。
  6. 但是我无法弄清楚如何让当前不在桌面上的对象出现。我是使用Qt的新手,所以它可能很容易我只是偶然忽略(事实上我希望它是这样)。

    有人可以提供建议吗?谢谢!

2 个答案:

答案 0 :(得分:0)

只需正常创建项目,然后设置:

ui->control->setVisible(false);

在构造函数中创建UI(在ui->setupUi(this);之后)之后(如果您使用Qt Creator生成的代码)。

当你需要它们时:

ui->control->setVisible(true);

Doc for this:

http://qt-project.org/doc/qt-4.8/qwidget.html#visible-prop

答案 1 :(得分:0)

使用QListView时,您还应该有QListModel向其提供数据,如果您只有QStrings,则预先制作QStringListModel供您使用

添加您可以执行的行:

int rows = model->rowCount();
model->addRow(rows,1);
QModelIndex index = model->index(rows,0);
model->setData(index, string);