zoukankan      html  css  js  c++  java
  • Qt开发经验小技巧41-50

    1. 如果使用sqlite数据库不想产生数据库文件,可以创建内存数据库。
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName(":memory:");
    
    1. 清空数据表并重置自增ID,sql = truncate table table_name。

    2. Qtchart模块从Qt5.7开始自带,最低编译要求Qt5.4。在安装的时候记得勾选,默认不勾选。使用该模块需要引入命名空间。

    #include <QChartView>
    QT_CHARTS_USE_NAMESPACE
    class CustomChart : public QChartView
    
    1. QPushButton左对齐文字,需要设置样式表QPushButton{text-align:left;}

    2. QLabel有三种设置文本的方法,掌握好Qt的属性系统,举一反三,可以做出很多效果。

    ui->label->setStyleSheet("qproperty-text:hello;");
    ui->label->setProperty("text", "hello");
    ui->label->setText("hello");
    
    1. 巧妙的用QEventLoop开启事件循环,可以使得很多同步获取返回结果而不阻塞界面。QEventLoop内部新建了线程执行。
    QEventLoop loop;
    connect(reply, SIGNAL(finished()), &loop, SLOT(quit()));
    loop.exec();
    
    1. 多种预定义变量 #if (defined webkit) || (defined webengine)。

    2. 新版的Qtcreator增强了语法检查,会弹出很多警告提示等,可以在插件列表中关闭clang打头的几个即可,Help》About Plugins。也可以设置代码检查级别,Tools》Options 》C++ 》Code Model。

    3. QSqlTableModel的rowCount方法,默认最大返回256,如果超过256,可以将表格拉到底部,会自动加载剩余的,每次最大加载256条数据,如果需要打印或者导出数据,记得最好采用sql语句去查询,而不是使用QSqlTableModel的rowCount方法。不然永远最大只会导出256条数据。
      如果数据量很小,也可以采用如下方法:

    //主动加载所有数据,不然获取到的行数<=256
    while(model->canFetchMore()) {
        model->fetchMore();
    }
    
    1. 如果需要指定无边框窗体,但是又需要保留操作系统的边框特性,可以自由拉伸边框,可以使用 setWindowFlags(Qt::CustomizeWindowHint);
  • 相关阅读:
    C# 按笔画排序
    WEB EXCEL OWC开发(老资料)
    JS操作Cookie
    汉字转拼音缩写取首字母
    javaScript通用数据类型校验
    嵌套Repeater 子层获得父层字段值 经典!!!
    不同于其他的provider: SQL 网络接口, error: 26 定位指定的服务器/实例时出错
    C# UDP 发送 接收
    Js 过滤空格
    高亮文本框
  • 原文地址:https://www.cnblogs.com/feiyangqingyun/p/12056788.html
Copyright © 2011-2022 走看看