![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
QT
快乐的嘉嘉
这个作者很懒,什么都没留下…
展开
-
实现页面1与页面2的来回切换,其中页面1是主页面
双页面切换原创 2022-03-24 12:03:40 · 1025 阅读 · 0 评论 -
在visual Studio中安装QT插件
在visual Studio中使用QT分为四步:一.安装visual studio。安装时选择C++桌面开发。下载地址网上有很多,我下载的2022版本的。二.安装QT在官网选择window下的适合vs的qt版本。安装时,安装选项,我除了关于android的没安装,别的都安装了。qt我安装的是2017版的。三.安装qt-vsaddin_msvc2022有博客推荐直接在vs的扩展中-联机,选择Qt tools进行安装,但是我按照这个方法安装时,总是在中途断掉,提示Web有问题。后来我直接从原创 2022-02-17 17:05:43 · 7319 阅读 · 0 评论 -
qt之 弹出打开文件对话框QFileDialog
qt之 弹出打开文件对话框QString fileName = QFileDialog::getOpenFileName(this);if (!fileName.isEmpty()) { ui->textEdit->setVisible(this);}原创 2021-11-17 17:23:45 · 1006 阅读 · 0 评论 -
qt之 在文本编辑器中打开打印对话框
qt之 在文本编辑器中打开打印对话框QAction* actPrint;actPrint = menu->addAction(tr("print"));connect(actPrint, SIGNAL(triggered()), this, SLOT(doPrint()));void MainWindow::doPrint(){ QTextDocument * document = ui->textEdit->document(); QPrinter print原创 2021-11-17 16:12:49 · 343 阅读 · 0 评论 -
qt 之信号和槽自动关联
qt 之信号和槽自动关联除了能够在程序中手动关联信号和槽之外,Qt的元对象提供了信号和槽的自动关联。对于Qt窗口部件已经提供的信号,如果能够按下面的规则命名槽函数,那么Qt就能够自动关联:void on_<窗口部件名><信号名>(<信号参数>); 如:on_VideoDevTable_customContextMenuRequested(const QPoint &pos) // 右击on_browsePushBtn_clicked(); // 点击按钮原创 2021-11-12 10:58:07 · 447 阅读 · 0 评论 -
如果多个信号指向同一个槽函数,想知道是触发的是哪个信号。
信号与槽 之 如果多个信号指向同一个槽函数如果多个信号指向同一个槽函数,想知道是触发的是哪个信号。contect(colorPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));contect(errorPushBtn, SIGNAL(clicked()), this, SLOT(doPushBtn()));// colorPushBtn 和colorPushBtn是不同的按钮。想知道是哪个按钮,QPushButton *btn = qobje原创 2021-11-10 17:08:57 · 395 阅读 · 0 评论 -
Qt 内嵌对话框
Qt 内嵌对话框除了QMessageBox消息框外,Qt提供的内建对话框还有:1. 颜色对话框QColorDialog;2. 错误消息框QErrorDialog;3. 文件对话框QFileDialog;4. 字体对话框QFontDialog;5. 输入对话框QInputDialog6. 页设置对话框QPageSetupDialog,配置与页相关的打印机选项。7. 进度对话框QProgressDialog;8. 打印对话框QPrinntDialog,配置打印机。...原创 2021-11-10 16:52:30 · 482 阅读 · 0 评论 -
qt之模态和非模态对话框
qt之模态和非模态对话框 模态对话框是阻塞式的 非模态对话框是非阻塞式的。必须通过new操作在堆中创建非模态对话框。qt中,QDialog::exec()以模态方式显式对话框,而QDialog::show()默认以非模态方式显示对话框...原创 2021-11-09 16:23:39 · 91 阅读 · 0 评论 -
qt之数据库连接删除
qt之数据库连接删除QSqlQuery类,提供了直接执行任意SQL语句并处理返回结果的方法。QSqlDatabase:可以提供默认连接供Qt其他的SQL类使用。第一次.据库的连接 用到QSqlDatabase 以及其类中的:: database和 addDatabase,QString g_sThreadId;QSqlDatabase db = QSqlDatabase::database(g_sThreadId);if (! db.isValid()) {// 参数1为驱动名,参数2名连原创 2021-11-04 17:25:26 · 2092 阅读 · 0 评论 -
qt之数据库连接
qt之数据库连接QSqlDatabase:可以提供默认连接供Qt其他的SQL类使用。QSqlQuery类,提供了直接执行任意SQL语句并处理返回结果的方法。数据库的连接 用到QSqlDatabase 以及其类中的:: database和 addDatabase,QString g_sThreadId;QSqlDatabase db = QSqlDatabase::database(g_sThreadId);if (! db.isValid()) {// 参数1为驱动名,参数2名连接名与dat原创 2021-11-04 16:56:03 · 506 阅读 · 0 评论 -
qt之文件的读取-QFile
qt之文件的读取-QFile#define FILE_DBCONFIG “config.ini”QString sDriver = QString::null;QString sDBName = QString::null;QString sUserName = QString::null;QString sPassword = QString::null;QString sServerName = QString::null;QFile file(FILE_DBCONFIG);if (原创 2021-11-04 16:50:32 · 350 阅读 · 0 评论 -
qt中常见的类
qt: qt中常见的类:1. QApplication: 应用程序类,创建一个QApplication对象并将用户在控制台输入的参数传递给该应用程序对象。对于非GUI的qt应用程序,可以使用不依赖QtGui库的QCoreApplication2. QTextCodec:该类定义了显示文本...原创 2021-11-01 14:09:04 · 306 阅读 · 0 评论 -
qt: pro工程文件
qt: pro工程文件1.变量TEMPLATE: app 应用程序,lib生成库2.变量TARGET:定义了可执行文件的名字3.变量DESTDIR: 定义了存放可执行文件的目录4. 变量CONFIG:定义了编译选项,即debug表示建立的目标代码是调试版本warn_on要求编译器在编译应用程序时打开告警开关5.变量OBJECTS_DIR:描述了编译/连接应用程序过程中产生的中间文件存放的位置 ,即编译器生成的中间文件hello.o放置在工程文件所在的目录。...原创 2021-11-01 11:23:24 · 82 阅读 · 0 评论 -
QList的用法
QList的用法QList<VideoWidget *> videoWidget_list;VideoWidget *videoWidget = videoWidget_list.at(i)原创 2021-08-25 17:26:02 · 529 阅读 · 0 评论 -
QMap的用法
QMap的用法QMap中可以定义value为结构体等。QMap<int,DHVideoDeviceOper*> m_mapDHVideoDeviceOper;QMap<int,CGroup>* m_pMapGroup;QMap<int,DHVideoDeviceOper*>* pMapDHVideoDeviceOper如果下文中需要用到某个类,可以直接声明类,如下文:class DHVideoDeviceOper;class BackWidget;clas原创 2021-08-25 17:25:07 · 571 阅读 · 0 评论 -
QComboBox的用法
QComboBox的用法QComboBox的作用是添加一个下拉框原创 2021-08-25 13:55:13 · 254 阅读 · 0 评论 -
如何设置使其弹出右键菜单
弹出右键菜单ui->PowerDevTable->setContextMenuPolicy(Qt::CustomContextMenu);原创 2021-08-20 15:25:49 · 128 阅读 · 0 评论 -
QGroupBox的用法
QGroupBox的用法QGroupBox是一个容器,里面可以有QRadioButton, QVBoxLayout等,一般先利用QVBoxLayout进行布局。group = new QGroupBox("Exclusive Radio Buttons", this);group->move(10,10);radio1 = new QRadioButton("radio1");radio2 = new QRadioButton("radio2");radio3 = new QRadioB原创 2021-08-18 16:26:42 · 1627 阅读 · 0 评论 -
文本打印和光标定位 42
文本打印和光标定位 42QPlainTextEdit通过QTextDocument对象存储文本数据QPlainTextEdit本身只负责界面形态的显示QTextDocument用于存储数据信息可能通过光标的字符位置信息计算坐标QTextDocument是表示文本以及文本属性的数据类1.设置文本的属性:排版,字体,标题,等2. 获取文本参数:行数,文本宽度,文本信息,等3. 实现标准操作:撤销,重做,查找,打印,等打印功能的实现步骤1. 连接QAction打印对象的信号到槽函数2. 在槽原创 2021-07-14 11:11:13 · 123 阅读 · 0 评论 -
Qt的文件操作
Qt的文件操作void write(QString f){ QFile file(f); if( file.open(QIODevice::WriteOnly | QIODevice::Text) ) { file.write("D.T.Software\n"); file.write("Delphi Tang\n"); file.close(); }}void read(QString f){ QFil原创 2021-07-05 09:25:02 · 65 阅读 · 0 评论 -
2021-07-02
文件编辑组件-2 QPlainTextEdit mainEditor;bool MainWindow::initMainEditor(){ bool ret = true; mainEditor.setParent(this); setCentralWidget(&mainEditor); // 设置中心窗口为mainedi return ret;}原创 2021-07-02 11:56:31 · 43 阅读 · 0 评论 -
文件编辑组件
文件编辑组件QLineEdit:单行文本编辑组件QPlainTextEdit:多行普通编辑组件QTextEdit:多选富文本编辑组件:适合于word这种复杂的。Qt中常用文本编辑组件的内置功能1.右键弹出式菜单2.快捷键功能:复制,粘贴,剪切等。MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), lineEdit(this), plainEdit(this), textEdit(this){ resize(原创 2021-07-02 09:55:23 · 193 阅读 · 0 评论 -
状态栏的创建 (29)
状态栏的创建 (29)状态栏的左边区域用于输出实时消息右边用于设置永久消息addWidget 在状态栏左半部分添加组件addPermanentWidget在状态栏右半部分添加组件statusBar(); // 为qt的成员函数,用于创建statusBarbool MainWindow::initStatusBar(){ bool ret = true; QStatusBar* sb = statusBar(); QLabel* label = new QLabel("D原创 2021-07-01 15:41:17 · 90 阅读 · 0 评论 -
在QTableWidget中获得点击的行号
在QTableWidget中获得点击的行号对于右键点击事件,这里用到的是Qt::CustomContextMenu方法,本例通过右点QTableWidget,显示下拉菜单,//customContextMenuRequested(QPoint)信号是QWidget中唯一右键菜单点击的信号,该信号发出的条件是:widget的ContextMenuPolicy必须是Qt::CustomContextMenu,此时右键点击就会发出此信号。ui->tableWidget->setContextM原创 2021-07-01 14:18:06 · 2374 阅读 · 0 评论 -
窗口2 -> 工具栏(28-1)
窗口2 -> 工具栏(28-1)Qt中通过QToolBar进行工具栏的创建QToolBar的关键成员函数void setFloatable(bool floatable);void setMovable(bool movable);void setIconSize(const QSize& iconSize);MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent){ QToolBar* tb = a原创 2021-06-29 17:37:54 · 41 阅读 · 0 评论 -
窗口1 -> 应用程序的主窗口(27)
窗口1 -> 应用程序的主窗口(27)主窗口是应用程序启动后显示的第一个窗口QMainWindow中封装了菜单栏,工具栏,中心组件,停靠组件,状态栏等组件菜单点击后会有很多选项。整个程序由一个主窗口和多个对话框组成。Menu BarToolbarsDock WidgetsCentral Widget菜单栏(QMenuBar)下拉菜单组(QMenu)菜单项(QAction)MainWindow::MainWindow(){}MainWindow* MainWindow原创 2021-06-29 16:50:03 · 212 阅读 · 0 评论 -
QT帮助文档的使用方法
QT帮助文档的使用方法有时看过qt的帮助文档后仍然不确定怎么用,现在总结下借助帮助的编写代码帮助1:setShortcut (const QKeySequence & shortcut)action->setShortcut(QKeySequence(key)); // int key原创 2021-06-29 16:21:23 · 515 阅读 · 0 评论 -
布局管理器6 -> 开发一个向导用户界面(26)
布局管理器6 -> 开发一个向导用户界面(26)要求:1.在同一界面上展现不同的向导页面2.通过上一步和下一步按钮进行切换Widget::Widget(QWidget *parent) : QWidget(parent){ initControl();}void Widget::initControl(){ QVBoxLayout* vLayout = new QVBoxLayout(); QHBoxLayout* hLayout = new QHBoxLay原创 2021-06-29 13:59:59 · 51 阅读 · 0 评论 -
布局管理器5 -> 栈式布局管理器(QStackedLayout)
布局管理器5 -> 栈式布局管理器(QStackedLayout)应用范围:如左右滑,上下滑等所有组件在垂直于屏幕的方向上被管理每次只有一个组件会显示在屏幕上只有最顶层的组件会被最终显示4.栈式布局管理器不能直接嵌套其它布局管理器(如QBoxLayout或QGridLayout),可以通过中间部件,设置布局管理器QStackedLayout的用法概要int addWidget(QWidget* widget);QWidget* currentWidget();void setC原创 2021-06-29 10:32:15 · 197 阅读 · 0 评论 -
计时器(QTimer)的使用方法
计时器(QTimer)的使用方法1.编写计时器消息处理函数2.在程序中创建计时器对象3.连接计时器消息和消息处理函数4.设置计时器时间间隔并启动计时QTimer* timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(timerTimeout()));timer->start(2000);void Widget::timerTimeout(){ ...}...原创 2021-06-29 10:30:37 · 754 阅读 · 0 评论 -
布局管理器4 -> 表单布局管理器 QFormLayout
布局管理器4 -> 表单布局管理器 QFormLayout以表单(Form)的方式管理界面组件表单布局中的标签和组件是相互对应的关系QFormLayout的用法概要void addRow(QWidget* label, QWidget* field);void addRow(QWidget* label, QLayout* field);void addRow(Const QString&labelText, QWidget* field);void addRow(const原创 2021-06-28 17:09:02 · 70 阅读 · 0 评论 -
设置窗口标题
setWindowTitle(“FTP”);原创 2021-06-28 16:11:26 · 136 阅读 · 0 评论 -
布局管理器3 -> QGridLayout中的组件可以根据需要跨越多个网络
布局管理器3 -> QGridLayout中的组件可以根据需要跨越多个网络如:layout->addWidget(&TestBtn1, 0, 0, 2, 1); // 位置在0,0, 占用2行一列void Widget::testGridLayout2(){ QGridLayout* layout = new QGridLayout(); TestBtn1.setText("Test Button 1"); TestBtn1.setSizePolic原创 2021-06-28 15:13:28 · 87 阅读 · 0 评论 -
布局管理器2 -> 比例系数
布局管理器2 -> 比例系数QBoxLayout和QGridLayout支持比例系数的概念自定义组件大小更新时的比例系数QBoxLayout中的比例系数设置void setStretch(int index, int stretch);bool setStretchFactor(QWidget * widget, int stretch);bool setStretchFactor(QLayut* layout, int stretch);// QVBoxLayout对应四个butt原创 2021-06-28 15:08:08 · 114 阅读 · 0 评论 -
布局管理器1 -> 布局管理器的嵌套
布局管理器1 -> 布局管理器的嵌套void Widget::testVHBoxLayout(){ QHBoxLayout* hLayout1 = new QHBoxLayout(); QHBoxLayout* hLayout2 = new QHBoxLayout(); QVBoxLayout* vLayout = new QVBoxLayout(); TestBtn1.setText("Test Button 1"); TestBtn1.setSiz原创 2021-06-28 14:08:12 · 65 阅读 · 0 评论 -
二阶构造函数
二阶构造函数参考文章:https://blog.csdn.net/lms1008611/article/details/81411413申请内存时可能会出现申请不成功。有时程序提前返回,造成有的变量没有被成功初始化。这就需要二阶构造函数。#include <iostream>#include <string> using namespace std; class test{private: int *m_pValue1; int *m_pVal转载 2021-06-28 10:20:10 · 167 阅读 · 0 评论 -
给pushButton加图片
给pushButton加图片QIcon icon;icon.addFile(QString::fromUtf8(":/new/prefix1/Hand.png"), QSize(), QIcon::Normal, QIcon::Off); // 加入fromUft8的目的是防止文件名有乱码ui->pushButton->setIcon(icon);ui->pushButton->setIconSize(QSize(50, 50));...原创 2021-06-24 11:36:33 · 688 阅读 · 0 评论 -
css样式表的用法
css样式表的用法就是打开样式表,然后将调用调用样式表setStyleSheetOnCreate( QWidget* pParentWnd ){ if (m_dlg == NULL) { m_pPluginWnd = new CVideoPlayWidget(pParentWnd); m_pPluginWnd->setStyleSheet(""); QFile file("../css/basestyle.css"); if (file.open(QIODevic原创 2021-06-24 10:51:58 · 76 阅读 · 0 评论 -
QTableView的用法
QTableView的用法1.QTableView 和QStandardItemModel 配合使用设置表头宽度ui->tableView->setColumnWidth(LISTCOLUMN_INDEX, 60);ui->tableView->setColumnWidth(LISTCOLUMN_TIME, 180);ui->tableView->setColumnWidth(LISTCOLUMN_CHANNEL, 70);ui->tableView原创 2021-06-23 14:23:26 · 374 阅读 · 0 评论 -
利用布局管理器,设置查找页面
利用布局管理器,设置查找页面Dialog::Dialog(QWidget *parent) : QDialog(parent, Qt::WindowCloseButtonHint), ui(new Ui::Dialog){ ui->setupUi(this); inite_model(); setLayout(&m_gridLayout); // 设置布局管理器}Dialog::~Dialog(){ delete ui;}v原创 2021-06-21 17:30:40 · 75 阅读 · 0 评论