Qt
文章平均质量分 92
me_badman
IT新人
展开
-
C++/Qt面试题
C++/Qt面试题原创 2022-07-11 16:37:01 · 2466 阅读 · 1 评论 -
Qt软件开发文档10---数据传递
http://blog.csdn.net/me_badman/article/details/70570191 在上例中绘制出界面元素 这时候需要将数据传递出去 写一个getSetting()方法 获取对应的数据,将数据存入QStringList中QStringList HiAnimationSettingWgt::getSettings(){ QStringList strRet原创 2017-04-24 10:24:54 · 412 阅读 · 0 评论 -
Qt软件开发文档9---封装类调用
绘制界面时往往需要大量重复的地方,如下 我们将重复的地方封装成一个类 HiAnimationSettingWgt.h// get string from lineeditclass HiLableLineEdtWgt :public HiBaseWgt{public: HiLableLineEdtWgt(TriTreeViewer*f, QString title, QStri原创 2017-04-24 10:18:34 · 592 阅读 · 0 评论 -
Qt软件开发文档8---登陆界面的绘制及其封装
1.登陆界面的绘制绘制一个登陆界面很简单,直接上代码 signin.h#ifndef SIGNIN_H#define SIGNIN_H#include <QDialog>#include <QMouseEvent>#include <QPixmap>#include <QVBoxLayout>#include <QStyle>#include <QPainter>#include <原创 2017-04-13 13:01:24 · 1561 阅读 · 1 评论 -
Qt软件开发文档7---全局变量(方法)的声明
我们在定义Func的时候 一种需要动态导入 调用Dll 中的Func 来调用函数 另一种则是引入.h头文件,使用类名::方法名/变量名 来调用函数使用全局变量有两种方式 1.extern 关键字(封装Dll时有用到) 2.static 声明静态变量(推荐)开发文档时,往往需要一些多次调用的Func,将这些Func封装在一个.h文件中 调用时直接引入.h文件即可上代码 PuclicF原创 2017-04-07 10:55:45 · 716 阅读 · 0 评论 -
Qt软件开发文档6---dockWidget自定义标题栏
Qt 自带的 QDockWidget 的标题栏只有两个按钮, 浮动按钮和 关闭按钮。 往往满足不了需求,只适合需要我们自定义一个标题栏。 如下 标题栏实现了自定义的最小化,最大化,关闭按钮 ,接收到dock传来的标题信息 直接上代码: 1.声明一个MyDockTitleBar类 MyDockTitleBar.h#ifndef MYDOCKTITLEBAR_H#de原创 2017-04-06 11:16:26 · 6452 阅读 · 1 评论 -
Qt软件开发文档5---父指针传递的妙用
上节提到过,main窗口调用各widget封装好的dll时,将parent传递给了个widget 在treeView 封装dll时 写入的showTree方法接受到parentbool showTree(void *parent, void *tree, void *){ QWidget *par = (QWidget *)parent; valTrans *vt = (va原创 2017-04-05 09:10:52 · 1028 阅读 · 0 评论 -
Qt软件开发文档4---主窗口的实现
主窗口如下顶部栏 为menuBar()添加:menuBar()->setFixedHeight(28);//menuBar() mainWindow 方法 QMenu *fileMenu = menuBar()->addMenu(QString::fromLocal8Bit("文件")); QMenu *viewMenu = menuBar()->addMenu(QString::f原创 2017-04-05 08:59:01 · 483 阅读 · 0 评论 -
Qt软件开发文档3---mainAPP调用dllManager中函数
1.mainWindow.h声明//这个声明主要用于调用dllManager的 runFunc函数typedef bool *(*func)(QString,QString,void *,void *,void *);//这个结构体用于接收函数的值struct ValTrans{ void *ptr;};2.调用dllmanager runFunc dllName = "treeDl原创 2017-04-01 17:39:29 · 602 阅读 · 0 评论 -
Qt软件开发文档11---更新数据
1.绘制界面绘制如下界面 接收到数据后 同9 将重复的地方封装成一个类class ToothPosLabelMsgWgt :public HiBaseWgt{public: ToothPosLabelMsgWgt(TriTreeViewer*f,QString labelText, QString labelTip, QString labelContent, QWidge原创 2017-04-24 10:37:40 · 530 阅读 · 0 评论 -
Qt软件开发文档12---scrollBar样式
绘制tableView时 往往需要自定义scrollBar的样式 QTableView *table = new QTableView(this); table->setGeometry(20,20,600,500); QString scrollStyle( //整体布局 "QScrollBar:vertical {原创 2017-04-26 14:46:06 · 678 阅读 · 0 评论 -
Qt软件开发文档20----Qt语言翻译家
近日SVN改git,公司大佬手把手教修改代码中语言翻译,为了省事,直接截图了。首先,从CmakeList开始 CmakeLists.txt添加完成后,编译程序,会在原文件路径下出现name_zh.ts。程序中,原来文件是这样的 将其改为 QObject::tr(“….”)的形式, 其中,”“中的内容为要翻译的英文.QObject::tr("add_bubble")QObject::tr原创 2017-12-21 15:46:21 · 1626 阅读 · 0 评论 -
Qt软件开发文档19---无边框窗体的自定义移动
绘制一个Qt界面时候,往往需要使用无边框窗体,同时需要自定义窗体的移动,拖拽等事件。setWindowFlags(Qt::FramelessWindowHint);利用 mouseEvent写入void MainWindow::mousePressEvent(QMouseEvent * event){ if (event->button() == Qt::LeftButton) {原创 2017-10-20 09:28:14 · 281 阅读 · 0 评论 -
Qt软件开发文档18---QSettings类的封装与调用,文件路径判断
简述软件开发时候,往往需要利用QSettings写入ini配置文件 多次调用QSettings的读写加大代码量,同时,修改时也会加大难度。 为此封装一个ConFRouter类,利用QSettings统一管理配置文件里的内容。类的声明与定义1. ConFRouter.hclass DLL_API ConFRouter{public: static ConFRouter* create_原创 2017-09-08 17:16:43 · 1248 阅读 · 1 评论 -
Qt软件开发文档17---自定义messagebox窗口
1.CustomMsgBox.h#ifndef CUSTOMMSGBOX_H#define CUSTOMMSGBOX_H#include <QDialog>#include <QMessageBox>#include <QDialogButtonBox>#include <QVBoxLayout>#include <QPushButton>#include <QLabel>#inclu原创 2017-08-23 11:01:19 · 759 阅读 · 0 评论 -
Qt软件开发文档16---软件更新:写入程序版本信息并读取程序的版本号
实现软件更新,需要写入本地软件的版本号,并读取出来,与服务器版本号相比较,决定是否进行软件的更新。1.写入版本信息:写入一个rc文件,并将其导入到Qt工程中。 在Qt工程中,利用RC_FILE+=version.rc 导入工程 QT+VS编译时,利用cmake导入工程即可. 代码如下:IDI_ICON1 ICON DISCARDABLE "LYL/ic原创 2017-08-10 16:42:58 · 1630 阅读 · 0 评论 -
Qt软件开发文档14---聊天窗口的实现,对QlistWidget点击item项隐藏虚线框的实现
要实现如下对话窗口: 先声明一个封装类FeedBackListItem feedbacklistitem.h#ifndef FeedBackListItem_H#define FeedBackListItem_H#define COLOR_WHITE Qt::white#define ITEM_HEIGHT 40#define I原创 2017-06-01 15:51:29 · 4240 阅读 · 1 评论 -
Qt软件开发文档13---线程互斥
以下内容来源与class Key:{public: Key(){key = 0;} int createKey(){++key;return key;} int value() const{return key;}private: int key;}如果key值等于0,线程一和线程二同时将0载入寄存器,执行+1操作写入主存,则结果是两个线程的执行结果将互相覆原创 2017-05-02 10:55:13 · 376 阅读 · 0 评论 -
Qt软件开发文档2---QT构建dll库,并使用dllmanager管理dll库
1.QT创建新项目 以treeViewDll为例 文件中含有treeviewdll_global.h 在treeview.cpp 中正常写入需要的内容 treeViewDll中声明在manager中调用的function dll.h#ifndef TREEVIEWDLL_H#define TREEVIEWDLL_H#include "treeviewdll_global.h"#incl原创 2017-04-01 17:28:58 · 429 阅读 · 0 评论 -
Qt软件开发文档1---Cmake编译QT程序
CmakeTest文件夹下 有如下结构: 最外层CMakeLists.txt文件project(MainAPP)cmake_minimum_required(VERSION 3.1.3)add_subdirectory(splitterDll)add_subdirectory(treeViewDll)add_subdirectory(dllManager)add_subdirectory(d原创 2017-04-01 17:08:52 · 844 阅读 · 0 评论 -
QT通过JS与HTML的交互
头文件加入QT += core gui webenginewidgets webchannel通过QWebChannel与JS交互 原理 QWebEnginePage *page = new QWebEnginePage(this); webView->setPage(page); webView->load(QUrl("qrc:/...原创 2017-02-08 16:54:46 · 7757 阅读 · 3 评论 -
8.1 QPainter
来源:http://blog.csdn.net/iamdbl/article/details/1630129 要在绘图设备(paint device,一般是一个控件)上开始绘制,我们只要创建一个QPainter,把绘图设备指针传给QPainter对象。例如:void MyWidget::paintEvent(QPaintEvent *event){ QPainter painter(th转载 2017-02-16 16:13:19 · 276 阅读 · 0 评论 -
QT QWebEngineView加载网页 resize 与 resizeEvent的区别
QWebEngineView加载网页 1.pro文件中写入QT += core gui webenginewidgets2.头文件加入#include <QtWebEngineWidgets>namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECTpublic:原创 2017-02-06 14:40:54 · 5947 阅读 · 0 评论 -
QT之XML读取
来源:https://www.devbean.net/2013/07/qt-study-road-2-read-xml-with-stream/ XML读取文档三种方式: 1.QXmlStreamReader:流处理。只能一次性解析,从上到下依次解析。 2.DOM(Document Object Model):(QDomDocument、QDomNode)将文本存入内存中(占用很大内存,适合小原创 2017-02-06 08:47:17 · 263 阅读 · 0 评论 -
QT Dom读取XML文档
(同流处理)声明QT += core gui xml方法:public: MainWindow(QWidget *parent = 0); ~MainWindow(); bool readFile(const QString &fileName);private: void parseBookindexElement(const QDomElement &转载 2017-02-06 09:07:14 · 551 阅读 · 0 评论 -
QT QXmlStreamReader流处理解析XML
来源https://www.devbean.net/2013/07/qt-study-road-2-read-xml-with-stream/ 建立XML文档<bookindex> <entry term="sidebearings"> <page>10</page> <page>34-35</page> <page>307-308</pag转载 2017-02-06 08:56:07 · 3304 阅读 · 0 评论 -
Q_ASSERT加断言
//Q_ASSERT()加断言 若进函数的时候 StartElement状态,或者说标签不是 bookindex,就认为出错 Q_ASSERT(reader.isStartElement() && reader.name()=="bookindex");原创 2017-02-06 08:38:40 · 963 阅读 · 0 评论 -
Qt之文件路径读取问题
将xml文件直接放入同级文件中 利用QFile file("books.xml")读取不到文件 解决方式: 1.写入绝对路径QFile file("D:/lei_project/qtproject/XMLdemo/books.xml");利用qDebug()<<QDir::currentPath();打印出当前路径 路径为:”D:/lei_project/qtproject/build-原创 2017-02-04 16:40:56 · 5471 阅读 · 1 评论 -
Qt 渐变色Gradient
线性渐变 QLinearGradient 弧度渐变 QConicalGradient 辐射渐变 QRadialGradient QPainter painter(this); //线性渐变 QLinearGradient linearGradient(0,0,150,150); linearGradient.setColorAt(0.2,Qt::white);原创 2017-02-17 09:57:53 · 2377 阅读 · 0 评论 -
Qt ContextMenu
QTableWidget中设置右键点击事件:tableWidget->setContextMenuPolicy(Qt::CustomContextMenu); connect(tableWidget,SIGNAL(customContextMenuRequested(QPoint)),this,SLOT(rightMouseClicked()));contextMenuPolicy:This p原创 2017-02-17 10:41:05 · 674 阅读 · 0 评论 -
VS 2013调试加载缓慢
vs2013 调试加载缓慢 是由于调试启动时会加载符号所致。 解决方法: TOOLS - options 把对号去掉即可。原创 2017-05-31 09:41:01 · 1032 阅读 · 0 评论 -
Qt const
http://blog.163.com/net_worm/blog/static/12770241920100884149492/ 一、CONST的作用1、保护被修饰的变量,防止程序中意外修改2、为函数的重载提供一种区别方法例如:void fun(int i) { …} void fun(int i) const { ... } // 跟上面的函数一起构成重载二、CONST的使转载 2017-02-16 10:46:29 · 1559 阅读 · 0 评论 -
enum Qt::ItemDataRole
Each item in the model has a set of data elements associated with it, each with its own role. The roles are used by the view to indicate to the model which type of data it needs. Custom models should r原创 2017-02-16 10:30:54 · 3854 阅读 · 0 评论 -
QML Button组件 及 定位器
新建Button.qmlimport QtQuick 2.0Rectangle{ id:root //定义属性别名 text 值为label的text property alias text: label.text //定义信号名字 利用on实现调用函数 //signal clicked signal myClicked width: 116;转载 2017-02-16 09:52:00 · 579 阅读 · 0 评论 -
QML 和QtQuick2
来源:https://www.devbean.net/2013/12/qt-study-road-2-qml-and-qtquick2/ 从 Qt 4.7 开始,Qt 引入了一种声明式脚本语言,称为 QML(Qt Meta Language 或者 Qt Modeling Language),作为 C++ 语言的一种替代。而 Qt Quick 就是使用 QML 构建的一套类库。 QML 是一种基于转载 2017-02-15 17:22:40 · 698 阅读 · 0 评论 -
线程和事件循环
来源:https://www.devbean.net/2013/11/qt-study-road-2-thread-and-event-loop/ 1.线程 可重入的(Reentrant):如果多个线程可以在同一时刻调用一个类的所有函数,并且保证每一次函数调用都引用一个唯一的数据,就称这个类是可重入的。如果该函数允许多个线程在同一时刻调用,而每一次的调用都只能使用其独有的数据。全转载 2017-02-10 09:38:48 · 1446 阅读 · 0 评论 -
QSharedMemory
来源:https://www.devbean.net/2013/11/qt-study-road-2-ipc/ Qt 提供了四种进程间通信的方式: 1.使用共享内存(shared memory)交互:这是 Qt 提供的一种各个平台均有支持的进程间交互的方式。 2.TCP/IP:其基本思想就是将同一机器上面的两个进程一个当做服务器,一个当做客户端,二者通过网络协议进行交互。除了两个进程是在同一台转载 2017-02-09 15:11:52 · 7440 阅读 · 1 评论 -
QStyledItemDelegate
Detailed Description: The QStyledItemDelegate class provides display and editing facilities for data items from a model. When displaying data from models in Qt item views, e.g., a QTableView, the ind翻译 2017-02-17 14:02:47 · 390 阅读 · 0 评论 -
QTableWidget十字高亮设置
二级menu菜单的显示: //menuvoid MainWindow::menuChoice(){ getCurrentPosition(); setHeighLight(row,col); menu.addAction(QIcon(":/close.png"),QString::fromLocal8Bit("缺牙"),this,SLOT(loseTooth()));原创 2017-02-04 14:27:37 · 1762 阅读 · 0 评论