Qt如何实现这种效果,展示多组多列的数据,某些列可放按钮接收事件

Qt如何实现这种效果,展示多组多列的数据,某些列可放按钮接收事件,第1张

你可以使用QTableView,或QTableWidget 这样的表格类来显示你的数据
QTableView比较难用,不过相对灵活
添加按钮可以用QTableWidget::setCellWidget QTableView 好像要自己实现这个函数

今天根据教程-《Qt开发实例》学习遇到一个问题,当在MainWindow类中添加qPushbutton后,按钮无法用鼠标点击,折腾了很久发现是MainWindow中private预先定义的
Ui::MainWindow ui 的原因,它通过ui->setupUi(this) 创建了一个位于窗口顶部的栏位,且至于了窗口最顶层,导致后来创建的qPushbutton被覆盖住了,所以无法点击
若将代码作以下改动:
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QPushButton>
#include <QMouseEvent> //引用鼠标类头文件
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget parent = 0);
~MainWindow();
private:
// Ui::MainWindow ui;
QPushButton btClose;
};
#endif // MAINWINDOW_H
--------------------mainwindowh
#include "mainwindowh"
#include "ui_mainwindowh"
MainWindow::MainWindow(QWidget parent) :
QMainWindow(parent)
// ui(new Ui::MainWindow)
{
// ui->setupUi(this);
btClose = new QPushButton(this);
btClose->setText("关闭");
}
MainWindow::~MainWindow()
{
// delete ui;
}
-----------------------------mainwindowcpp
那按钮就可以起作用了

使用Qt进行软件开发,不可避免要使用资源文件。本节我们做一个简单示例,通过使用Qt资源文件为应用程序及关闭按钮设置图标。

根据前面我们所讲述的内容,先创建PyCharm工程项目,然后创建Qt工程项目,在Qt工程项目中设计界面并创建资源文件。

界面中我们只放置一个“关闭”按钮,所以在此不做具体的描述。下面,我们创建资源文件。

在Qt Creator中选择“File” -> "New File or Project",然后选择“Qt”->"Qt Resource File",在File name中输入res,在项目中可以看到,我们创建了一个resqrc资源文件。

在资源文件上右击,选择”Open in Editor“即可打开资源文件编辑器。

在资源文件中首先需要创建一个前缀,名称可以根据具体的资源进行命名,我们在此处命名为:icons;然后单击”Add Files“,选择事先准备好的图标文件添加进来。

在按钮的属性编辑器中找到icon属性,点击下拉菜单中的”Choose Resource“,在对话框中选择对应的资源文件中的图标即可。

编译资源文件:

在PyCharm的工程项目中创建一个名为rccbat的批处理文件,其代码如下:

注意:编译资源文件时,生成的py文件名结尾必须是_rc,因为编译窗体文件后会产生如下语句:

编译窗体文件:

在PyCharm的工程项目中创建一个名为uicbat的批处理文件,其代码如下:

运行以上两个批处理文件,可以看到编译后的py文件已经生成。

执行程序后可以看到,界面中的关闭按钮显示了我们在Qt Creator中设置的图标。

引入图标类:

在主程序中app = QApplication(sysargv)语句后面增加设置图标的代码:

为”关闭“按钮添加单击事件代码:

运行程序即可看到应用程序的图标也可以显示了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13346645.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-19
下一篇 2023-07-19

发表评论

登录后才能评论

评论列表(0条)

保存