找回密码
 立即注册
Qt开源社区 门户 查看内容

Qt武林秘籍(二)

2019-8-11 11:11| 发布者: admin| 查看: 654| 评论: 0

摘要: 一、开发经验总结(21~40)21. 如果出现"Z-order assignment: is not a valid widget."错误提示,用记事本打开对应的ui文件,找到zorder/zorder为空的地方,删除即可。22. 善于利用QComboBox的addItem的第二个参数设 ...
一、开发经验总结(21~40)

21. 如果出现"Z-order assignment: is not a valid widget."错误提示,用记事本打开对应的ui文件,找到<zorder></zorder>为空的地方,删除即可。

22. 善于利用QComboBox的addItem的第二个参数设置用户数据,可以实现很多效果,使用itemData取出来。

23. 如果用了WebEngine模块,发布程序的时候带上QtWebEngineProcess.exe+translations文件夹+resources文件夹。

24. a.setAttribute(Qt::AA_NativeWindows);

可以让每个控件都拥有独立的句柄。

25. Qt+Android防止程序被关闭。

'''

#i f defined(Q_OS_ANDROID)QAndroidService a(argc, argv);return a.exec()# elseQApplication a(argc, argv);return a.exec();# endif

'''

26. 可以对整体的指示器设置样式,例如 *::down-arrow,*::menu-indicator{}  *::up-arrow:disabled,*::up-arrow:off{}。

27. 可以执行位置设置背景图片:
'''
QMainWindow > .QWidget {
    background-color: gainsboro;
    background-image: url(:/images/pagefold.png);
    background-position: top right;
    background-repeat: no-repeat
}
'''

28. 嵌入式linux运行Qt程序  Qt4写法:./HelloQt -qws &   Qt5写法:./HelloQt --platform xcb.

29. Qtcreator软件的配置文件存放在:C:\Users\Administrator\AppData\Roaming\QtProject,有时候如果发现出问题了,将这个文件夹删除后打开creator自动重新生成即可。

30. QMediaPlayer依赖本地解码器,WIN上下载k-lite或者LAV Filters安装即可。




31. 代码判断MSVC编译器版本,用if语句:if (_MSC_VER == 1800)
MSVC++ 14.0 _MSC_VER == 1900 (Visual Studio 2015)
MSVC++ 12.0 _MSC_VER == 1800 (Visual Studio 2013)
MSVC++ 11.0 _MSC_VER == 1700 (Visual Studio 2012)
MSVC++ 10.0 _MSC_VER == 1600 (Visual Studio 2010)
MSVC++ 9.0  _MSC_VER == 1500 (Visual Studio 2008)
MSVC++ 8.0  _MSC_VER == 1400 (Visual Studio 2005)
MSVC++ 7.1  _MSC_VER == 1310 (Visual Studio 2003)
MSVC++ 7.0  _MSC_VER == 1300
MSVC++ 6.0  _MSC_VER == 1200
MSVC++ 5.0  _MSC_VER == 1100

32. 在pro中判断不同平台:message($$QT_ARCH) contains(QT_ARCH,arm)。

33. Qt最小化后恢复界面假死冻结,加上代码
'''
void showEvent(QShowEvent *e){
setAttribute(Qt::WA_Mapped);
QWidget::showEvent(e);
}

'''

34. 获取标题栏高度:style()->pixelMetric(QStyle::PM_TitleBarHeight); PM_TitleBarHeight点进去你会发现新大陆。

35. 设置高分屏属性以便支持2K4K等高分辨率,尤其是手机app。必须写在main函数的QApplication a(argc, argv);的前面。
'''
#if (QT_VERSION > QT_VERSION_CHECK(5,6,0))
QGuiApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
#endif
'''

36. 如果运行程序出现 Fault tolerant heap shim applied to current process. This is usually due to previous crashes. 错误。
办法:打开注册表,找到HKEY_LOCAL_MACHINE\Software\Microsoft\Windows  NT\CurrentVersion\AppCompatFlags\Layers\,选中Layers键值,从右侧列表中删除自己的那个程序路径即可。

37. Qt内置了QFormLayout表单布局用于自动生成标签+输入框的组合的表单界面。

38. qml播放视频在linux需要安装 sudo apt-get install libpulse-dev。

39. 可以直接继承QSqlQueryModel实现自定义的QueryModel,比如某一列字体颜色,占位符,其他样式等,重写QVariant CustomSqlModel::data(const QModelIndex &index, int role) const。

40. Qt5以后提供了类QScroller直接将控件滚动。
'''
ui->listWidget->setHorizontalScrollMode(QListWidget::ScrollPerPixel);
QScroller::grabGesture(ui->listWidget,QScroller::LeftMouseButtonGesture);
'''


二、 论坛/博客/网站推荐

|foruok|http://blog.csdn.net/foruok|

|jason|http://blog.csdn.net/wsj18808050|

|朝十晚八|http://www.cnblogs.com/swarmbees|

|BIG_C_GOD|http://blog.csdn.net/big_c_god|

|公孙二狗|https://qtdebug.com/qtbook|





未完待续



最后安利一波广告

**欢迎关注微信公众号【高效程序员】,C++/Python、学习方法、写作技巧、热门技术、职场发展等内容,干货多多,福利多多!**




点小花花,让他们知道你“在看”我



----------------------------------------------------------------------------------------------------------------------
我们尊重原创,也注重分享,文章来源于微信公众号:Qter欢聚在上海,建议关注公众号查看原文。如若侵权请联系qter@qter.org。
----------------------------------------------------------------------------------------------------------------------

鲜花

握手

雷人

路过

鸡蛋

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了