1、QT 语法查漏(随时更新)
2016-12-25 15:02
344 查看
1、解决中文乱码问题:
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
2、 a.cpp中添加了一个A类的私有槽函数:void open_dialog();
b.cpp中添加了一个B类的成员函数 CreatDialog()
使用open_dialog调用 CreatDialog 创建一个对话框,并且可以传送值到对话框中。
对话框中的exec要在open_dialog函数中书写,这样可以进行传值操作。
3、QT中给对话框添加最大化最小化
Qt::WindowFlags flags;flags = windowFlags();flags |= Qt::WindowMinimizeButtonHint;flags |= Qt::WindowMaximizeButtonHint;setWindowFlags(flags); 4、对话框添加最大化最小化 构造函数中添加如下几行代码即可
Qt::WindowFlags flags;
flags = windowFlags();
flags |= Qt::WindowMinimizeButtonHint;
flags |= Qt::WindowMaximizeButtonHint;
setWindowFlags(flags);
5、给标签插入图片
①添加新文件,选择QT资源文件
命名mySource会出现mySource.qrc
添加文件,添加前缀,即新建资源文件夹
添加图片到其中即可使用资源
②包含头文件:
#include <QPixmap>
#include <QLabel>③构造函数中添加:
QPixmap bgPixmap(":/picture/button/Button3.png");
QLabel * m_pBgLabel = new QLabel(this->centralWidget());
m_pBgLabel->setPixmap(bgPixmap);
m_pBgLabel->show();
6、设置固定大小:
this->setFixedSize(500,500);
7、调用调色板,添加背景色
QPalette titlePalette;
titlePalette.setBrush(QPalette::Background,Qt::yellow);
this->setPalette(titlePalette);
8、delete释放对象数组时,要加[ ],一般的数组(或者自定义非标准结构体)删除时候加上肯定可以。
USBDeviceInfo *m_pUSBDevice;
if(m_pUSBDevice != NULL) {
delete []m_pUSBDevice; m_pUSBDevice = NULL;
}
9、定义一个路径的宏 #define DEVICE_EXIST_FILE "/tmp/USB_exist"
10、函数传参,内部修改参数,使用参数
int Total; getStorageInfo((char *)"/media/U",&Total,1);
int DUSBDeviceSelect::getStorageInfo(char * MountPoint, //SD卡随便一个分区 int *Capacity, // 想要获取的空间大小 int type) //获取什么类型的空间 { struct statfs statFS; //系统stat的结构体 U64 usedBytes = 0; U64 freeBytes = 0; U64 totalBytes = 0; U64 endSpace = 0; if (statfs(MountPoint, &statFS) == -1){ //获取分区的状态 printf("statfs failed for path->[%s]\n", MountPoint); return(-1); } totalBytes = (U64)statFS.f_blocks * (U64)statFS.f_frsize; //详细的分区总容量, 以字节为单位 freeBytes = (U64)statFS.f_bfree * (U64)statFS.f_frsize; //详细的剩余空间容量,以字节为单位 usedBytes = (U64)(totalBytes - freeBytes); //详细的使用空间容量,以字节为单位 switch( type ) { case 1: endSpace = totalBytes/1024/1024; //以MB为单位的总容量 break; case 2: endSpace = usedBytes/1024/1024; //以MB为单位的使用空间 break; case 3: endSpace = freeBytes/1024/1024; //以MB为单位的剩余空间 break; default: return ( -1 ); } *Capacity = endSpace; //这个不用说了吧 return 0; }
11、字符串转换为10进制
bool ok; //toInt 中是否是正确的输入,很多函数中也有成功与否的标志,可以利用此进行提示 int index = strUSBDeviceIndex.toInt(&ok,10); //字符串转换成10进制
//基本语法实例
QString str = "FF"; bool ok; int hex = str.toInt(&ok, 16); // hex == 255, ok == true int dec = str.toInt(&ok, 10); // dec == 0, ok == false
12、emit使用的信号定义
signals: void selectUSBDeviceFinishSignal();
某个函数中调用:
emit selectUSBDeviceFinishSignal();
相关文章推荐
- oracle数据库关键字与语法-工作笔记(随时更新)
- ASP语法大全(随时更新)
- 正则表达式的的语法问题(随时更新)
- MacOS上Qt(pyQt)程序运行出错汇总及解决办法(随时更新)
- 随时更新==eclipse Java开发相关插件
- Qt中pro、pri文件的语法介绍
- Qt:正则表达式语法:
- 收藏 - 随时更新
- C陷阱 ---- 随时更新
- 用友通服务无法启动-解决汇总【随时更新】
- JAVA基础语法(持续更新)
- KSQL中Update多表级联更新的语法
- [Qt] 界面美化 [2013-06-17更新]
- 更新VS+Qt项目(从VS2010+Qt5.4.0到VS2012+Qt5.2.1)
- 查询随时更新的客户的信息
- C#编码简单性之代码篇(如何编写简短的C#代码,随时更新)
- mac常用命令(随时更新)
- 原创:Angular新手容易碰到的坑,随时更新,欢迎订阅
- 网站建设小技巧,随时更新
- EXCEL使用汇总-〉随时更新