主要记录一些日常使用的小Tips
1 . DrawRect函数
默认画笔宽度为1,直接使用会发现边框线只有左边和上边有,而右边和下边被遮盖了。
方案1:设置画笔宽度大于1即可。
pen.setWidth(2);
方案2:宽,高 -1
painter.drawRect(this->rect().x(),this->rect().y(),this->rect().width()-1,this->rect().height()-1,);
2 TableView富文本显示
QLabel QTextDocument经确认是可以显示富文本的。(还有另外一个控件也是可以的,但我未进行验证)。
如果要实现TableView富文本显示的话,可以设置表格代理,在代理里面进行富文本支持。
举个例子:
View类名 MyTableView继承于QTableView
model类名随意,为你自己定义的model
代理类名MyStyleItemDelegate
View构造函数中创建代理类
new MyStyleItemDelegate(this)
MyStyleItemDelegate类:
除了必要实现必要函数。主要要是实现
void paint(QPainter *,const QStyleOptionViewItem &, const QModelIndex &)
{
当index.data().userType()=QString时
{
…
有点多后续再贴
}
}
3 QTextDocument setHtml不能水平居中显示
有人说遇到了上述问题。这个问题接着第二章来的。
其实很简单。主要原因就是没有设置区域
4. 隐式共享
隐式共享的意思是可以直接return 返回的是地址,不会进行拷贝。
有
QStringList
总的来说,QT中所有的容器类都支持隐式共享;此外,QByteArray,QBrush,QPen,QPalette,QBitmap,QImage,QPixmap,QCursor,QDir,QFont和QVariant等也都只是隐式共享机制。
5. 新增信号流程
类要继承于QObject
此外CMakeLists中要记得moc
6.Dialog.exec并未阻塞父窗口
exec默认阻塞父窗口,需要检查
- 父窗口指针
- dialog是否是模态窗口
这篇博客主要分享了QT界面设计的一些实用技巧,包括DrawRect函数的使用方式以避免边框问题,如何在TableView中实现富文本显示,解决QTextDocument setHtml的水平居中问题,理解QT的隐式共享机制,新增信号流程的步骤,以及Dialog.exec的阻塞行为。这些小技巧对于提升QT应用的开发效率和用户体验非常有帮助。
346

被折叠的 条评论
为什么被折叠?



