1、QT 语法查漏(随时更新)

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








  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值