
Qt开发学习
文章平均质量分 58
爱因
xbnlkdbxl
展开
-
QTableView中文本根据内容自动换行的简单方法
关于这个,总结一下有两种比较好的方式:1、自定义QItemDelegate,实现paint函数来对内容换行,实现sizeHint函数来调整行高(未实际测试)主要内容:void MyWrapTextDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,原创 2016-05-13 16:18:53 · 16258 阅读 · 1 评论 -
Qt5线程错误:QThread: Destroyed while thread is still running
背景: 当前类,编写接收子线程类信号的槽函数和触发子线程类执行的信号; 新建一个子线程类,编写槽函数和信号,MyClass *m_MyClass=new MyClass(); 新建一个线程对象QThread *runThread=new QThread(); 使用connect连接当前类与子线程的信号槽,以便触发线程及接收线程原创 2017-08-07 11:48:41 · 30332 阅读 · 4 评论 -
Qt 线程间信号槽传递自定义数据类型(qRegisterMetaType的使用)
不跨线程的话,使用自定义的类型使用signal/slot来传递,没有什么问题。但如果是跨线程的使用,则没有这么简单。直接使用的话,会产生下面这种错误:(假定自定义类为MyClass)QObject::connect: Cannot queue arguments of type 'MyClass' (Make sure 'MyClass' is registed using qRe原创 2017-02-24 15:30:41 · 13364 阅读 · 1 评论 -
去除/隐藏QStandardItem已显示的复选框(CheckBox)
如题,如果一个QStandardItem设置为可以勾选(setCheckable(true)),则相应会在文字前显示一个复选框(checkbox);但此时再次设置QStandardItem为不可勾选(setCheckable(false)),文字前的复选框(checkbox)不会消失,仅仅是不再可以勾选。这样的情况,很多时候不是我们想要的,那如何能够使复选框按照我们的意图消失呢?原创 2016-12-15 10:02:13 · 6074 阅读 · 3 评论 -
QAbstractView(QTreeView、QTableView等)鼠标滑过显示Tooltip(帮助)当前指向单元格文字
如题,效果为QTreeView或QTableView在取得焦点的情况下,移动鼠标并短暂停留,即可弹出tooltip并显示当前鼠标指针所指向行内的数据用于显示太长而被隐藏的数据,共有两种方式:1、使用整个窗口/view的事件过滤器 假设窗口中有名称为treeview控件bool MyWidget::eventFilter(QObject *editor, QEvent原创 2016-12-12 14:49:00 · 8861 阅读 · 7 评论 -
linux下执行脚本,提示Command not found解决办法
遇上了这个坑,搞了好久没搞定,参考了前辈的文章,终于搞好了,分享如下原文地址:http://www.cnblogs.com/GordonWorld/archive/2012/03/19/2406225.htmlLinux下执行.sh脚本错误:bin/sh^M: bad interpreter: No such file or directory 原因是.sh脚本在转载 2016-10-27 14:42:37 · 63327 阅读 · 13 评论 -
QTableView中使用代码来选中连续多行、间隔多行并移动后保留选中
如题,貌似这个简单的问题,没有什么人写过、问过。依旧是查阅各位大牛的资料和Qt说明之后,总结如下:1、QTableView设置选择模式(SelectionMode)为MultiSelection或者ExtendedSelection,以便能允许选中多行2、SelectionMode为MultiSelection时比较简单,只要知道需要选中的Index所在行/列:**选中多行原创 2016-09-02 10:43:30 · 10921 阅读 · 10 评论 -
有关QWidget的关闭close()
设置关闭窗口后自动删除对象,节约内存setAttribute(Qt::WA_DeleteOnClose); //关闭后自动删除本对象窗口关闭虚函数,覆写实现自定义功能void DispatchEditPage::closeEvent(QCloseEvent *event){ if(!isSavedFlag) { int b=QMessageBox::q原创 2016-05-09 16:52:24 · 8539 阅读 · 0 评论 -
QTreeView中finditems查找子项
1、QList QStandardItemModel::findItems(const QString & text, Qt::MatchFlags flags = Qt::MatchExactly, int column = 0) const不特殊指定第二个参数的情况下,此函数只会搜索TreeView的顶层元素,不会匹配子元素。第二个参数中加入“Qt::MatchContains | Q原创 2016-05-31 10:38:57 · 15636 阅读 · 1 评论 -
Qt自定义样式/无边框窗口/子窗口模态/非模态问题
依旧是参考了诸多文章及帖子,最后测试总结如下:1、只要是继承自QWidget的窗口/对象,理论上都可以设置模态/非模态2、模态是指除了本窗口内部控件外,直接使用.exec()运行(或先设置模态setWindowModality(Qt::ApplicationModal)或setWindowModality(Qt::WindowModal),再show())则本项目的其他窗口原创 2016-05-18 13:57:00 · 3353 阅读 · 0 评论 -
自定义QItemDelegate实现带CheckBox复选框的自增ID表格列
查找并参阅了多位前辈的文章,最后总结如下:新建C++类继承QItemDelegate,并覆写如下三个函数://绘制背景及内容、样式 void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;//创建编辑控件 QWidge原创 2016-05-04 17:05:57 · 5736 阅读 · 1 评论 -
Qt5中部分自带控件菜单(QLineEdit、QTextEdit右键菜单)的汉化
Qt中一些控件自带了功能完备的右键菜单,完全可以满足一般的使用要求,而不必再费劲自己创建、调用菜单,但是默认情况下这些菜单均为英文,用在一款汉语软件里难免有点别别扭扭,这就需要我们进行汉化。得益于Qt本身良好的国际化设计,实现起来并不复杂。经查阅各位大牛的文章以及用户文档,在Qt5中的使用总结如下:1、首先要有翻译文件(.qm),关于如何生成qm这里不做表述,各位自己搜索原创 2016-05-05 14:15:40 · 9433 阅读 · 0 评论 -
Qt5中创建一个自动筛选/补全的QCombobox
1、需要用到的类有:QComboBox、QLineEdit、QCompleter、QSortFilterProxyModel、QStandardItemModel、QStandardItem,添加相关引用2、前提:QComboBox设置为可编辑,即setEditable(true);3、原理:A、单列数据(即只对QComboBox显示的数据自动补全):给QComboBox添原创 2017-08-07 12:16:14 · 5610 阅读 · 1 评论