代码实现qt 用qwidget设计一个点击界面,有两个list view控件,一个按钮控件,一个text browser控件,在第一个list view里面点击数值,第二个list view里面选择其他数值,在第二个list view选择数值后,在text browser显示选中的数值,同时按键按下,选中的数值进去其他界面
时间: 2024-02-28 15:55:54 浏览: 52
用qt利用tablewidget等控件
好的,下面是实现该界面的代码:
```cpp
#include <QtWidgets>
class ClickWidget : public QWidget
{
Q_OBJECT
public:
ClickWidget(QWidget *parent = nullptr) : QWidget(parent)
{
// 创建两个QListView控件
listView1 = new QListView(this);
listView2 = new QListView(this);
// 创建一个QPushButton控件
button = new QPushButton("进入其他界面", this);
// 创建一个QTextBrowser控件
textBrowser = new QTextBrowser(this);
// 创建第一个QListView控件的模型,并添加一些数据
model1 = new QStandardItemModel(this);
for (int i = 0; i < 10; i++) {
QStandardItem *item = new QStandardItem(QString::number(i));
model1->appendRow(item);
}
listView1->setModel(model1);
// 创建第二个QListView控件的模型,并添加一些数据
model2 = new QStandardItemModel(this);
for (int i = 0; i < 10; i++) {
QStandardItem *item = new QStandardItem(QString::number(i * 2));
model2->appendRow(item);
}
listView2->setModel(model2);
// 连接第一个QListView控件的clicked()信号到槽函数
connect(listView1, &QListView::clicked, this, &ClickWidget::onListView1Clicked);
// 连接第二个QListView控件的clicked()信号到槽函数
connect(listView2, &QListView::clicked, this, &ClickWidget::onListView2Clicked);
// 连接QPushButton控件的clicked()信号到槽函数
connect(button, &QPushButton::clicked, this, &ClickWidget::onButtonClicked);
// 创建一个垂直布局管理器,并将控件添加进去
QVBoxLayout *layout = new QVBoxLayout(this);
layout->addWidget(listView1);
layout->addWidget(listView2);
layout->addWidget(button);
layout->addWidget(textBrowser);
setLayout(layout);
}
private slots:
void onListView1Clicked(const QModelIndex &index)
{
// 获取第一个QListView控件当前选中的项目
selectedItem = model1->item(index.row())->text();
}
void onListView2Clicked(const QModelIndex &index)
{
// 获取第二个QListView控件当前选中的项目,并在QTextBrowser中显示出来
QString selectedText = model2->item(index.row())->text();
textBrowser->setText(selectedText);
}
void onButtonClicked()
{
// 按钮被点击时,将选中的数值传递给其他界面进行处理
qDebug() << "Selected item:" << selectedItem;
}
private:
QListView *listView1;
QListView *listView2;
QStandardItemModel *model1;
QStandardItemModel *model2;
QPushButton *button;
QTextBrowser *textBrowser;
QString selectedItem;
};
```
在使用该类的时候,只需要将其实例化并添加到另一个QWidget或QMainWindow中即可:
```cpp
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
ClickWidget w;
w.show();
return a.exec();
}
```
运行程序后,就可以看到一个包含两个QListView控件、一个QPushButton控件和一个QTextBrowser控件的窗口。在第一个QListView控件中点击某个数值,在第二个QListView控件中选择其他数值,就可以在QTextBrowser控件中显示选中的数值。当按下QPushButton控件时,程序会输出选中的数值。
阅读全文