zoukankan      html  css  js  c++  java
  • QT相关(c++)

    基础知识

    输出函数

    可以使用  qlogging.h 中的qInfo ,也可以使用 QDebug 中的qDebug。

    例子:

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    
    #include "qlogging.h"
    #include "QDebug"
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        qInfo()<<"hello QT 1";
        qDebug()<<"hello QT 2";
    
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    mainwindow.cpp

    定时器

    使用QTimer, 

    三步骤: 1,创建QTimer 2, connect 信号槽, 3 timer.start(dura)

    例子:

    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include "QDebug"
    #include "QTimer"
    
    MainWindow::MainWindow(QWidget *parent)
        : QMainWindow(parent)
        , ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
    
        timer = new QTimer();
        connect(timer,&QTimer::timeout,this,&MainWindow::print);
        timer->start(1000);
    
        connect(ui->pushButton,&QPushButton::clicked,this,&MainWindow::print);
    }
    
    MainWindow::~MainWindow()
    {
        delete ui;
    }
    
    
    void MainWindow::print()
    {
        qDebug()<< "size "<<size();
    }
    mainwindow.cpp

    Qt使用 MSVC编译器 中文乱码问题

    一,使用Qt creator 

    在Qt Creator中使用msvc的编译器

    两个问题:1,编译失败  2 运行时乱码

    1,编译时失败的原因是因为creator 创建文件是utf8 不带bom,但是 msvc是微软的,使用utf8要带bom,所以编译失败。

    2,运行时乱码的解决方法是 在当前的文件头加上  #pragma execution_character_set("utf-8")

    https://blog.csdn.net/u013001137/article/details/103934813

    二,使用VS

    VS默认创建的文件是utf8无bom,写中文会导致文件编码改变,和第一种情况一样,保证文件编码为utf8-bom,然后使用#pragma execution_character_set("utf-8")

    可以下载VS插件:force utf8(with bom)

    总结就是 使用msvc编译器要保证 文件编码为utf8-bom,然后在文件头加上 #pragma execution_character_set("utf-8")

    QT改变QComboBox Item的间距

        class PopupItemDelegate : public QStyledItemDelegate
        {
        public:
            using QStyledItemDelegate::QStyledItemDelegate;
            QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const 
            {
                QSize s = QStyledItemDelegate::sizeHint(option, index);
                s.setHeight(20);
                return s;
            }
        };
    
            // 方法一    
        //QListView *fontSizeView = new QListView(ui.comboBox);
        //ui.comboBox->setView(fontSizeView);
    
        // 方法二
        ui.comboBox->view()->setItemDelegate(new PopupItemDelegate(ui.comboBox));
        ui.comboBox->addItems({ "一号","二号","三号","四号","五号","六号","七号" });

     

  • 相关阅读:
    软件体系架构会议纪要
    漫谈架构之阅读笔记02
    漫谈架构之阅读笔记01
    学习进度报告01
    以《淘宝网》为例,描绘质量属性的六个常见属性场景。
    软件架构师的工作方式
    软件体系架构课堂测试02
    系统安全——访问控制
    信息安全技术——物理环境与设备安全、虚拟专用网
    信息安全技术——防火墙、入侵检测技术
  • 原文地址:https://www.cnblogs.com/zach0812/p/15618023.html
Copyright © 2011-2022 走看看