QT点击Qtableview写的表格一行弹出一个820*550的窗上面显示一个图片,并且有两个按钮
时间: 2023-12-10 09:38:19 浏览: 50
你可以通过以下步骤来实现这个功能:
1. 在Qt中创建一个新窗口,大小为820*550,添加一个QLabel用于显示图片,以及两个QPushButton用于按钮操作。
2. 在QTableView中,当用户单击某一行时,触发一个槽函数,该槽函数将显示新窗口并设置图片。
3. 在槽函数中,可以使用QModelIndex获取所选行的数据,并将其转换为图像,然后将其显示在QLabel控件中。
4. 添加两个QPushButton用于操作,例如“保存”和“关闭”按钮。通过信号和槽连接,当用户单击这些按钮时,执行相应的操作。
下面是示例代码:
```cpp
// 定义一个新窗口类
class MyDialog : public QDialog {
public:
MyDialog(QWidget* parent = nullptr)
: QDialog(parent) {
// 设置窗口大小
setFixedSize(820, 550);
// 添加 QLabel 控件用于显示图片
m_imageLabel = new QLabel(this);
m_imageLabel->setGeometry(0, 0, 820, 450);
// 添加 QPushButton 控件用于保存和关闭
m_saveButton = new QPushButton("保存", this);
m_saveButton->setGeometry(100, 470, 80, 30);
connect(m_saveButton, SIGNAL(clicked()), this, SLOT(onSaveButtonClicked()));
m_closeButton = new QPushButton("关闭", this);
m_closeButton->setGeometry(200, 470, 80, 30);
connect(m_closeButton, SIGNAL(clicked()), this, SLOT(close()));
}
public slots:
void setImage(const QImage& image) {
// 将图像显示在 QLabel 控件中
m_imageLabel->setPixmap(QPixmap::fromImage(image));
}
void onSaveButtonClicked() {
// 保存图像
// ...
}
private:
QLabel* m_imageLabel;
QPushButton* m_saveButton;
QPushButton* m_closeButton;
};
// 在 QTableView 中,单击某一行时触发的槽函数
void MainWindow::onTableClicked(const QModelIndex& index) {
// 获取所选行的数据
QVariant data = m_tableModel->data(index, Qt::DisplayRole);
// 将数据转换为图像
QImage image = data.value<QImage>();
// 创建一个新窗口并设置图像
MyDialog* dialog = new MyDialog(this);
dialog->setImage(image);
dialog->exec();
}
```
相关推荐
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)