QT
COSummer
生物医学小硕一枚,现从事医疗软件研发
展开
-
QTableWidget的样式设计以及不能完全选中某一行以及使用setSpan()合并单元格出现的问题总结
QTableWidget的样式设计以及不能完全选中某一行以及使用setSpan()合并单元格出现的问题总结原创 2023-01-09 16:09:35 · 701 阅读 · 1 评论 -
QWidget 设置圆角
QWidget 设置圆角原创 2023-01-09 16:04:16 · 377 阅读 · 0 评论 -
QT + vtk actor 调节透明度异常的问题记录
vtk 修改bug的简单记录原创 2022-10-10 09:36:14 · 710 阅读 · 0 评论 -
itk、vtk、qt 显示dicom 数据
以下代码实现了itk读取dicom数据,转换为vtkData,然后用Qt显示。1、Qt Designer 搭建界面,QVTKOpenGLNativeWidget 是vtk的一个类,连接qt与vtk的桥梁,一个可以显示dicom数据的widget,可以当做一个普通的widget去布局。但是为vtk 与qt 的版本都比较高,注意一下。2、因为使用itk较多,直接用itk读的dicom数据,然后使用 itk::ImageToVTKImageFilter转成vtkData,便于显示。3、QVTKOpen原创 2020-07-08 10:29:30 · 1819 阅读 · 2 评论 -
VTK9.0 and Qt 5.14环境配置中的问题记录
计算机上有时会安装多个版本的Qt,因此常常会导致调用Qt的过程中调不到指定版本的Qt,现把配置过程记录一下:1、Qt:下载:官网下载比较慢,可以选国内的镜像网站,Qt的window版本名字都是86,但64位也会集成到该安装包中,安装的时候选x64就可以了,然后添加环境变量,切记如果环境变量中Qt的路径尽量往前放,因为像我的电脑ancoda配置python环境的时候安装过Qt,也为此配置过环境变量,因此VS 运行的时候一直报如下错误: ...原创 2020-07-01 09:36:35 · 1430 阅读 · 1 评论 -
QLineEdit支持记忆功能
功能需求:某一功能是输入一定的软件使用者信息,点击保存之后,信息作为一条记录,存入数据库保存。需要QLineEdit具有记忆功能,即如果输入的信息的前一个字或前几个字是之前保存过的(顺序不能变,大小写区分设置可以单独设定)则在QLineEdit下面自动列出所有符合的记录,用户可以点击某一记录完成输入,省去继续拼写的麻烦。实现思路:主要用到的类为QStringListModel、QCompleter...原创 2018-03-07 10:26:20 · 3286 阅读 · 4 评论 -
QTextStream 操作文件中含有中文时乱码
问题描述:替换本地file.project文件中的所有某一字符串,test.project中含有中文,发现缺少QTextCodec::codecForName("utf-8")后总是乱码。所以总结出QTextStream的默认编码方式不是utf-8,所以需要手动指定一下才能正确解析。示例代码如下:QTextStream fileStream(&file ); fileStream.s...原创 2018-03-02 18:24:38 · 8501 阅读 · 3 评论 -
QT 的数据库操作(QSqlDatabase、QSqlQuery)
1、QSqlDatabase创建连接数据库实例,一个QSqlDatabase的实例代表了一个数据库连接。Qt提供的对不同数据库的驱动支持:Driver Type Description:QDB2 IBM DB2QIBASE Borland InterBase DriverQMYSQL MySQL DriverQOCI Oracle Call Interface...原创 2018-03-06 17:54:44 · 39765 阅读 · 4 评论 -
打开指定目录(Qt)
1、功能需求:某一按钮的功能是导入图像,希望点击该按钮时,弹出指定目录,以便在该文件夹中选择需要的文件。关键实现语句为 QString dir = QFileDialog::getExistingDirectory(this, tr("Open Directory"), folderPath, QFileDialog::ShowDirsOnly | QFileDialog::DontR...原创 2018-03-06 18:07:41 · 3879 阅读 · 0 评论 -
Qt设置样式经验总结
1、QT new新控件的时候最好指定parent,因为涉及到样式的继承,如果不指定parent或指定错误的parent,很可能出现很费解的情况,而且原因很隐蔽。比如QFrame的pos(),指示的是parent的位置,比如move()是在parent上Move的,有一次遇到这种情况,外层一个背景widget0,中间一个内容widget1,widget1的parent是widget0,原本的意思是w...原创 2018-04-13 18:53:05 · 911 阅读 · 2 评论 -
Qt 信号槽整理
1、信号和槽机制是QT的核心机制,要精通QT编程就必须对信号和槽有所了解。信号和槽是一种高级接口,应用于对象之间的通信,他是QT的核心特性,也是QT差别于其他工具包的重要地方。信号和槽是QT自行定义的一种通信机制,他独立于标准的C/C++语言,因此要正确的处理信号和槽,必须借助一个称为moc(Meta Object Compiler)的QT工具,该工具是个C++预处理程式,他为高层次的事件处理自动...原创 2018-04-20 17:03:38 · 270 阅读 · 0 评论 -
QToolButton、QMenu、QAction
QMenu * menuLoad = new QMenu(ui->LoadIMButton); menuLoad->setObjectName(QStringLiteral("menuLoad")); QAction * actionLoad_series = new QAction(menuLoad); actionLoad_series->setObj...原创 2018-04-27 16:45:03 · 1413 阅读 · 1 评论 -
pyqt 显示中文
# coding=UTF-8 //放到文件首行import sysreload(sys)sys.setdefaultencoding('utf-8')node = QtGui.QGraphicsSimpleTextItem(str.decode('你好中国'))原创 2019-04-23 13:19:19 · 1690 阅读 · 0 评论 -
QTabWidget与QTableWidget相结合生成Tab页
QTableWidget* Widget1 = new QTableWidget(this); QStringList headerLabels1; headerLabels1.push_back(kWidgetHeader1); Widget1->setColumnCount(1); Widget1->setHorizontalHeaderLabels(heade原创 2017-06-22 09:52:49 · 5357 阅读 · 0 评论 -
QTableWidget的样式设计以及不能完全选中某一行以及使用setSpan()合并单元格出现的问题总结
1、QTableWidget样式设置及说明 LoadInforWidget->setShowGrid(false);//不显示网格 LoadInforWidget->setSelectionBehavior(QAbstractItemView::SelectRows);//选中行为为一行 LoadInforWidget->setSelectionMode(QAbstractIt原创 2018-01-05 13:14:27 · 6069 阅读 · 1 评论 -
固定日期与当前系统时间的比较 (QDate)
1、获取当前系统的日期:QDate::currentDate(); 2、将固定日期定义为:const QString kDefiniteDate(“3230313930393330”); 3、比较过程: (1) 将DefiniteDate转换成QDate形式const QString kDateStringFormat("yyyyMMdd");QDate test;test=QDate::原创 2017-03-15 10:12:33 · 4114 阅读 · 0 评论 -
获取某一目录下某一类文件的文件名(QDir)
下面代码的目的是获取TargetDir(某一特定目录)下的所有后缀为“stl”的文件的名称列表:void GetStlFileNameList( QDir Dir ,QFileInfoList &FileList){ QFileInfoList subFileList = Dir.entryInfoList(QDir::Files|QDir::CaseSensitive);//过滤条件为只原创 2017-06-23 09:41:53 · 3372 阅读 · 0 评论 -
QTableWidgetItem 中文字布局
QTableWidgetItem中内容的对齐方式和其他Qt控件一样,分为Qt::AlignLeft、Qt::AlignRight、Qt::AlignHCenter、Qt::AlignJustify、Qt::AlignTop、Qt::AlignBottom、Qt::AlignVCenter等,但是如果想让内容与左边空4个字符,是没直接的Qt指令的,此时我想到的办法是new 一个QPixmap,作为QT原创 2017-07-17 09:12:11 · 1508 阅读 · 0 评论 -
QDialog 可移动
重写QDialog 的 void mousePressEvent(QMouseEvent *event)、 void mouseMoveEvent(QMouseEvent *event)、void mouseReleaseEvent(QMouseEvent *event) 三个函数,实现拖动QDialog标题栏移动QDialog的功能。 .h文件中定义如下成员变量 代码如下: protect原创 2017-07-10 09:48:36 · 3157 阅读 · 1 评论 -
Qt 文件创建与内容存储
以下代码的功能是将字符串中qsImplantNameString的内容保存到路径ImplantDirectory下的名为kImplantInfor的txt文件中。 QString ImplantDirectory = qsPatietnOpPlanPath + QDir::separator() + kImplantFilesFolder; QDir ImplantDir; if (!I原创 2017-07-10 10:15:55 · 795 阅读 · 0 评论 -
QWidget 页面刷新慢
我们采用的是MVC架构,View 的基类是QWidget,某些复杂的页面中执行某一操作后,如移动某一actor,总感觉actor移动的速度很慢,解决方案:刷新页面效果会好一些,即调用QWidget的update();原创 2017-08-02 09:23:26 · 1914 阅读 · 0 评论 -
Qt画矩形与椭圆的问题
Qt的QPainter类中提供了drawEllipse和drawRect函数分别画椭圆与矩形,但是这两个函数有一个共同的问题:所画椭圆的长短轴与x、y轴平行,矩形的长短边也与x、y轴平行,如果想出现与x、y轴相交的效果(斜的),QPainter提供了Rotate()和translate()函数分别对坐标系进行旋转和平移,但是对坐标系变换之后,再次画图便会以新的坐标系为标准进行绘制,如出现椭圆是斜的效原创 2017-09-13 10:04:43 · 7041 阅读 · 2 评论 -
QFile转换为QPixmap
QFile imageFile(qsFileName);//qsFileName为某一文件的路径 if (!imageFile.open(QIODevice::ReadOnly))//可读 { return; } QByteArray Image = imageFile.readAll(); QImage bitm; bitm.loa原创 2017-10-23 09:30:06 · 1137 阅读 · 0 评论 -
QPainterPath
QPainterPath 可用于填充,描边,clipping。 使用方法:QPainterPath一旦创建,直线和曲线都可以被添加入path。 int nRowIndex = EllipseCenter.Y(); int nColumnIndex = EllipseCenter.X(); QPainterPath ellipsePath; ellipse原创 2017-11-29 09:48:04 · 845 阅读 · 1 评论 -
Qt 使用过程中的经验
1、要使按钮的位置自适应(随屏幕分别率的改变或app显示状态(最大化、正常)的变化而变化),要使用布局(Layout)。如果将按钮放到QWidget里,按钮的位置是不变的,改变app显示状态,会出现部分按钮不可见的问题。2、设置控件的SizePolicy为Expanding,则控件的尺寸便会自适应(随屏幕分别率的改变或app显示状态(最大化、正常)的变化而变化)。3、QTableWidge原创 2018-01-04 18:50:47 · 534 阅读 · 0 评论 -
QScrollBar(滚动条)的一个完整样式记录
QScrollBar:vertical//首先是设置主体{ margin:30px 0px 30px 0px; background-color:#F0F1EF; border: 0px; width:30px; }QScrollBar::handle:vertical//滑块{ background-color:#bbbbbb; wi原创 2017-06-23 09:26:03 · 7289 阅读 · 4 评论 -
QSlider样式设计
The slider is the classic widget for controlling a bounded value. It lets the user move a slider handle along a horizontal or vertical groove and translates the handle’s position into an integer value原创 2017-05-27 09:37:52 · 1677 阅读 · 0 评论 -
QScrollBar样式设计
A scroll bar is a control that enables the user to access parts of a document that is larger than the widget used to display it. It provides a visual indication of the user’s current position within t原创 2017-03-02 10:50:52 · 1340 阅读 · 0 评论 -
QSignalMapper 信号转发器
当类似的控件(eg btn)需连接类似的信号槽时,如果写n个connect与n个信号槽函数太麻烦了,此时便用到了QSignalMapper.先举一个项目中用到的例子: QSignalMapper* pSignalMapperRotate = new QSignalMapper(this);for (int i = 0; i < AdjustRotate_Btn_Count; ++i){原创 2016-10-19 10:00:17 · 465 阅读 · 0 评论