[QT]Qt中给QDialog 设置背景图
qt中给QDialog 设置背景图方法
方法一:使用 QPalette 对象:
QPalette palette; QPixmap pix; pix.load(":/Images/back.png"); palette.setBrush(backgroundRole(),QBrush(pix.scaled(this->size()))); setPalette(palette);
qt中给QDialog 设置背景图方法
方法一:使用 QPalette 对象:
QPalette palette; QPixmap pix; pix.load(":/Images/back.png"); palette.setBrush(backgroundRole(),QBrush(pix.scaled(this->size()))); setPalette(palette);
Qt 推出系统的方法
方法一:exit
Application* app; app->exit(0);
方法二:quit
QApplication* app; app->quit();
Qt 连接 Sqlite数据库 的方法
核心使用类:
QSqlDatabase:提供了一个接口,用于通过连接访问数据。QSqlDatabase的一个实例表示连接。该连接通过受支持的数据库驱动程序之一提供对数据库的访问,该驱动程序派生自QSqlDriver。
QSqlError:可以显示数据操作的错误
Qt连接SQL Server数据
一、配置ODBC数据源
1)控制面板->管理工具->ODBC数据源
QTimer 是Qt中的一个定时器类,可以用来触发定时功能
常用方法:
void start(std::chrono::milliseconds msec) 启动一个QTimer,milliseconds 触发时间差,单位毫秒
//int转double int a = 1234; double b; b = a;//直接赋值就可以 //double转int double c = 123.456; int d; d = c;//d的结果为123,即只取整数部份 d = c*1000;//乘1000将小数消掉即可,注意int位数要求,避免溢出
//int转string int a = 123456; string b; b = std::tostring(a); //string转int string c = "123456"; int d; d = atoi(c.c_str());//string转float 用 atof()
//int转QString int a = 123456; QString b; b = QString::number(a,10,5);//QString::number(a,基底,精度) //方法2,利用arg() int a = 123456; QString b = QString("%1").arg(a); //QString转int QString c = "123456"; int d; d = c.toInt();
//double转QString double a = 123.456; QString b; b = QString::number(a,10,5);//同int //QString转double QString c = "123.456"; double d; d = c.toDouble();//类似int
//string转QString string a = "123.456"; QString b; b = QString::fromStdString(a); //QString转string QString c = "123,456"; string d; d = c.toStdString();
Qt中使用自定义空间使用
一、新建自定义控件文件,选择Qt->Qt设计师界面类(会有UI拖动界面)
二、选择Widget模板
Qt 模态窗口和非模态窗口
1、模态窗口(系统会挂起,不可以其他操作)
QDialog dlg(this); dlg.exec(); qDebug() << "模态窗口";
如何在QT中使用资源文件
1、准备资源文件,我们这里准备了几个图片
QStatusBar,QLabel,QTextEdit,QDockWidget组装界面
1、创建一个状态栏( 只能有一个) setStatusBar
//创建状态栏 QStatusBar *stBar = statusBar(); setStatusBar(stBar);
示例:
QMenuBar和QMenu
构建一个菜单栏:menuBar
//创建菜单栏 QMenuBar *bar = menuBar(); //设置到页面中 this->setMenuBar(bar);
创建两个菜单:addMenu
QMenu *fileMenu = bar->addMenu("文件"); QMenu *editMenu = bar->addMenu("编辑");
效果:
lambda 表达式说明:
含义:lambda表达式是定义匿名函数对象的便捷方法,直接在调用或作为参数传递的函数位置.
表达式示例: [=] ( ) mutable throw( ) -> int { }
由6个部分组成
1.capture子句(C++规范中也称为lambda引入器).
信号槽其他操作:
关联信号槽:
//信号关联信号 void(teacher::*teacherSingler2)(void) = &teacher::hungry; void(student::*studentSlot2)(void) = &student::eat; connect(teh,teacherSingler2,stu,studentSlot2); connect(btn,&QPushButton::clicked,teh,teacherSingler2);
带参数的信号槽使用方法,重载的使用
1、新增信号槽发起类,teacher
#ifndef TEACHER_H #define TEACHER_H #include <QObject> class teacher : public QObject { Q_OBJECT public: teacher(QObject *parent = 0); signals: //自定义信号槽 //返回void //可以有参数,无参数 重载 void hungry(); //重载方法 传入吃的东西名称 void hungry(QString name); }; #endif // TEACHER_H
2、新增信号槽关联对象
信号槽添加方法
QObject::connect(const QObject *sender,
const char *signal,