如何使 UI 对象仅在单击按钮后显示在对话框中

How to get UI objects to only appear in dialog AFTER button is clicked

本文关键字:显示 对话框 按钮 单击 UI 对象 何使      更新时间:2023-10-16
  1. 我有一个对话框,最初有几个按钮,我们称它们为写入、查看、确定和取消。

  2. 它应该做的是在创建时让对话框只有这三个按钮,仅此而已。

  3. 当 Write 按钮被取消时,它应该在按钮上方的窗口中创建一个QLineEdit对象,用户可以在其中输入一个新字符串,然后单击 OK 时,该字符串将被添加到外部QStringList

  4. 单击"视图"时,LineEdit应该消失(如果它已启动),并且QListView会出现以查看该列表中的所有内容。

  5. 问题是,我知道如何使用hide()来使对话框中已有的对象不显示。

  6. 但是我无法弄清楚如何让当前不在桌子上的对象出现。我是使用Qt的新手,所以它可能很容易被我无意中忽略(事实上我希望是这样)。

    谁能提供建议?谢谢!

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

ui->control->setVisible(false);

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

当您需要它们时:

ui->control->setVisible(true);

为此提供文档:

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

使用QListView时,您还应该有一个为其提供数据的QListModel,如果您只有QStrings那么会预先制作一个QStringListModel供您使用

要添加行,您可以执行以下操作:

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