• 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

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

  • 相关阅读:
    微服务架构九大特性
    0-1背包问题
    服务端(后端)主动通知前端的实现:WebSocket(springboot中使用WebSocket案例)
    python解析xmind统计测试用例/测试点 个数及执行情况
    AKS==donet6代码生成镜像到dockerhub并发布到Azure Kubernetes 服务 (AKS)
    自定义注解实现分布式限流
    必看:阿里云99元服务器老用户续费到2027年的方法!
    Fe-safe 2023 新功能介绍
    【操作系统】线程&进程相关
    3、Kafka Broker
  • 原文地址:https://blog.csdn.net/weixin_51883798/article/details/132799713