Qt界面的一些技巧和实现笔记

    技术2022-05-19  26

    1、是程序启动时屏幕居中

    #include

    //....

    int x = (qApp->desktop()->width()- this->width()) / 2;

    int y = (qApp->desktop()->height() - this->height()) / 2;

    this->move(x, y); //....

     

    2、工具栏上的QAction对象保持按下状态

    myAction->setCheckable(true);

     

    3、使用启动画面

    #include

    //....

    main(...)

    ...//

    QApplication app(..)...

    QSplashScreen* splash = new QSplashScreen;

    splash->setPixmap(QPixmap(":/images/start_.png"));

    splash->show(); qApp->processEvents();

     

    MainWindow mainWindow;

    //....

    mainWindow.show();

    splash->finish(&mainWindow);

    delete splash;

    //.........

     

    4、Windows下设置Qt程序.exe文件的图标 建立一个资源文件,app.rc,写入如下一行 IDI_ICON1 ICON DISCARDABLE "your_app_icon.ico" 在你的工程文件***.pro中添加 RC_FILE = app.rc 然后重新编译一次程序就OK,your_app_icon.ico已经被编译在程序中,发布时不需要带。

     

    5、熟悉Qt提供的标准对话框,在程序中大量用到 //QtDemo中Dialogs/Standard Dialogs中有演示和实现代码 QInputDialog中包含了输入数字,文本, 下拉列表等标准对话框。 QColorDialog中包含了一个标准颜色选择对话框。 QFontDialog中包含了一个标准字体选择对话框。 QFileDialog中包含了打开单个和多个文件,选择文件夹,保存文件的标准对话框。 QMessageBox中包含了提示,警告,错误,问答等标准对话框。 这个都可以在Qt Assist (SDK中就是QtCreator的Help选项中)相应类的静态函数中查到。 6、正则表达式QRegExp的使用 QtDemo中Tools/Regular Expressions 是Qt的正则表达式的测试程序,比较有用。 QtAssist中QRegExp条目下有QRegExp的使用说明,只是可能不太详尽。 一篇正则表达式的网文,QRegExp与之类似,可以参考。 http://unibetter.com/deerchao/zhengzhe-biaodashi-jiaocheng-se.htm

     

    7、如何添加右键菜单和如何在在item中添加右键菜单可以参考这里

    http://blog.chinaunix.net/u3/103355/showart_2101226.html http://blog.chinaunix.net/u3/103355/showart_2101288.html

     

    8、Qt程序的多国语言界面自由切换的实现参考这里 http://blog.chinaunix.net/u3/103355/showart_2090421.html

     

    9、后面添加Q_OBJECT宏时编译出现“undefined reference to vtable for” 简短的说,Clean整个工程,然后到工程目录下面把Makefile,Makefile.Debug,Makefile.Release都删除,基本都会解决。更详细可以参考这里: http://blog.chinaunix.net/u3/103355/showart_2064628.html

     

    10、创建停靠窗口

    //这是我代码中的一段,MainWindow.... _dock = new QDockWidget(tr("Output Window"), this);

    _output = new QTextEdit(_dock);

    _dock->setWidget(_output);

    _dock->setAllowedAreas(Qt::BottomDockWidgetArea);

    addDockWidget(Qt::BottomDockWidgetArea, _dock);

    viewMenu->addAction(_dock->toggleViewAction()); //......


    最新回复(0)