• 9月25日学习记录


    1. vs中Qt添加模块在这个位置:

    VS2019 Qt 怎么添加Qt模块?_qt+vs添加第三方qt模块_令狐掌门的博客-CSDN博客

    2.布局学习

    (1)

    1. QVBoxLayout *layout=new QVBoxLayout(this);
    2. QWidget *w1=new QWidget;
    3. QWidget *w2=new QWidget;
    4. w1->setStyleSheet("background-color:red");
    5. w2->setStyleSheet("background-color:green");
    6. layout->addWidget(w1,1);
    7. layout->addWidget(w2,7);
    8. //1:7的比例
    9. setLayout(layout);

    (2) 

    1. setContentsMargins(15, 15, 15, 15);
    2. setStyleSheet("background-color:black");
    3. QVBoxLayout *layout=new QVBoxLayout(this);
    4. QWidget *w1=new QWidget;
    5. w1->setStyleSheet("background-color:red");
    6. layout->addWidget(w1,1);
    7. layout->setContentsMargins(5,5,5,5);
    8. setLayout(layout);

    黑色区域:

    宽度15+5=20

    15来自窗体,5来自layout。

    3.WinExec

    WinExec("calc.exe", SW_SHOW);

    SW_SHOW 用当前的大小和位置显示一个窗口,同时令其进入活动状态

    WinExec("calc.exe", SW_SHOWMAXIMIZED);

    WinExec("Notepad.exe", SW_SHOW);

    WinExec("Notepad.exe", SW_SHOWMAXIMIZED);

    WinExec("Notepad.exe", SW_HIDE);

    //会出现在任务管理器中,但不会显示在任务栏。

    运行ScreenToGif.exe:

    1. #include
    2. #include
    3. #include
    4. #include "tchar.h"
    5. int main(
    6. int argc, char* argv[]) {
    7. int res = WinExec("E:\\ScreenToGif\\ScreenToGif.exe", SW_SHOW);
    8. std::cout << res<<'\n';
    9. if (res == 0) {
    10. std::cout << "系统内存或资源不足";
    11. }
    12. else if (res == ERROR_BAD_FORMAT) {
    13. std::cout << ".EXE文件格式无效";
    14. }
    15. else if (res == ERROR_FILE_NOT_FOUND) {
    16. std::cout << "指定的文件没有找到";
    17. }
    18. else if (res == ERROR_PATH_NOT_FOUND) {
    19. std::cout << "指定的路径没有找到";
    20. }
    21. return 0;
    22. }

    注意:路径中是\\

    同理:

    打开网易词典

    int res = WinExec("E:\\网易有道词典\\Dict\\YodaoDict.exe", SW_SHOW);

     打开指定的txt文件

    	int res = WinExec("notepad.exe D:\\2.txt", SW_SHOW);

    这样也可以:

    1. std::string str("notepad.exe D:\\work\\版本\\1.0.1\\OfficeAssistant2.0\\Debug\\license.txt");
    2. int res = WinExec(str.c_str(), SW_SHOW);

    这样也可以:

    1. QString str1("notepad.exe D:\\work\\learn_git\\Git\\2.txt");
    2. int res = WinExec(str1.toStdString().c_str(), SW_SHOW);

    这样也可以:

    QString中文乱码_qstring 中文_Coder-LiyG的博客-CSDN博客

    1. QString str1=QString::fromLocal8Bit("notepad.exe D:\\work\\版本\\1.0.1\\OfficeAssistant2.0\\Debug\\license.txt");
    2. QByteArray by = str1.toLocal8Bit();
    3. int res = WinExec(str1.toLocal8Bit().constData(), SW_SHOW);

    4.patch:补丁

    5.在debug时打印文件名和行数,便于追踪bug:

    #define PRINTF_LOCATION() qDebug()<<"ret in:" << __FILE__ << " at:"<<__LINE__<<"..."

    6.写程序就是要和bug打交道,我们要保持平和的心态去尽量解决每一个bug。

    7.有时候需要控制台显示程序debug的内容:

    VS里编写qt怎么显示qDebug的内容_超自然祈祷的博客-CSDN博客

    8.

    I.this对应MainWindow

        layout = new QVBoxLayout(this);    
    

    这样写会报错的。

    因为MainWindow下面有ui->centralWidget

    所以应该写成layout = new QVBoxLayout(ui->centralWidget);

    II.

        layout = new QVBoxLayout(ui->centralWidget);
        layout_top = new QHBoxLayout(ui->centralWidget);

    这样也是错的。

    错误信息:QLayout: Attempting to add QLayout "" to QWidget "centralWidget", which already has a layout

    一个窗体只能添加一个布局。

  • 相关阅读:
    RTOS系列文章(10):简单OS示例分析
    vscode 代码 与 gitee 同步
    【Kaggle比赛常用trick】K折交叉验证、TTA
    15设计模式-行为型模式-观察者模式
    GUI设计——PyQt5快速入门
    八年测开经验面试28K公司后,吐血整理出高频面试题和答案
    Java知识梳理 第十三章 集合
    Java设计模式:使用责任链模式和状态模式优化‘审批流程‘
    【开发规范】持续更新中......
    如何让Java的线程池顺序执行任务?
  • 原文地址:https://blog.csdn.net/weixin_51883798/article/details/132799713