您的位置:首页 > 编程语言 > Qt开发

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();

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: