qstring

Qt实现自定义滑动按钮

帅比萌擦擦* 提交于 2020-03-12 09:16:45
  今天记录下,使用Qt现有的组件,搭配来实现一个滑动按钮的效果。我看之前有人做过类似的,不过是在paintEvent事件里用画笔画的,我呢,比较懒,就使用现成的组件来实现吧,下面看下效果:      这是利用自定义的类继承QWidget,里面再加一个QLabel,来实现上面的效果。顺便提一下,以后可以将自己做得组件保存下来,方便以后项目里使用。 废话不多说,直接上核心代码,没玩过的,都来手动体验下吧。   下面是头文件: #ifndef CUSTOMBUTTON_H #define CUSTOMBUTTON_H #include <QWidget> #include <QLabel> #include <QTimer> #include <QMouseEvent> #include <QStyleOption> #include <QPainter> class CustomButton : public QWidget { Q_OBJECT public: explicit CustomButton(QWidget *parent = nullptr,int width=50, int height=20); private: QLabel* myLabel; QTimer timer; int m_width; int m_height; int dir; int

QT 小知识之字符串处理

≡放荡痞女 提交于 2020-03-10 19:25:48
1 分割字符串 1)section方式 1.1)单个字符分割 Q String QString::section( QChar sep, int start, int end = -1, SectionFlags flags = SectionDefault) const QString str; QString csv = "forename,middlename,surname,phone"; QString path = "/usr/local/bin/myapp"; // First field is empty QString::SectionFlag flag = QString::SectionSkipEmpty; str = csv.section(',', 2, 2); // str == "surname" str = path.section('/', 3, 4); // str == "bin/myapp" str = path.section('/', 3, 3, flag); // str == "myapp" If start or end is negative, we count fields from the right of the string, the right-most field being -1, the one from

QT乱码对策

为君一笑 提交于 2020-03-07 09:28:58
1 using namespace std; 2 3 //#pragma execution_character_set("UTF-8") 4 int main(int argc, char *argv[]) 5 { 6 QApplication a(argc, argv); 7 QString str = QStringLiteral("中文测试"); 8 //str = "中文测试"; 9 qDebug() << str; 10 //QMessageBox::information(0, "title", str); 11 char *src = "元数据中文GBK"; 12 13 //元数据是gbk或者gb2312 多字节存入QString 14 //本地编码方式 默认GBK 15 QString str1 = QString::fromLocal8Bit(src); 16 qDebug() << "str1 = " << str1; 17 18 //把QString 转为gbk 19 cout << str1.toLocal8Bit().toStdString() << endl; 20 //本地处理编码方式,默认是GBK,改为UTF-8 21 QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));

QTableView QAbstractTableModel QStyledItemDelegate QHeaderView 定制化表格(二)

不羁的心 提交于 2020-03-06 01:40:42
一、效果图 二、工程构建思路 依据mvc模型,重写QTableView QAbstractTableModel QStyledItemDelegate QHeaderView,利用QStyleOptionProgressBar自定义进度条样式,重写createEditor等必要函数实现自定义编辑输入框。 三、代码片段 //样式代理部分 # include "tabledelegate.h" TableDelegate :: TableDelegate ( QObject * parent ) : QStyledItemDelegate ( parent ) { } void TableDelegate :: paint ( QPainter * painter , const QStyleOptionViewItem & option , const QModelIndex & index ) const { //去掉Focus QStyleOptionViewItem viewOption ( option ) ; initStyleOption ( & viewOption , index ) ; if ( option . state . testFlag ( QStyle :: State_HasFocus ) ) viewOption . state =

Qt 字符串截取常用函数

痴心易碎 提交于 2020-03-06 00:59:55
1、bool QString::startsWith  // 字符串以XX开头,返回true,第二个参数可以设置大小写敏感 QString str = "Bananas"; str.startsWith("Ban"); // returns true str.startsWith("Car"); // returns false 2、bool QString::endsWith  // 字符串以XX结尾,返回false,第二个参数可以设置大小写敏感 QString str = "Bananas"; str.endsWith("anas"); // returns true str.endsWith("pple"); // returns false 3、QString QString::trimmed()  // 返回前后没有空格的字符串 QString str = " lots\t of\nwhitespace\r\n "; str = str.trimmed(); // str == "lots\t of\nwhitespace" 4、QString &QString::remove(int position, int n)  // 指定位置开始删除n个字符,返回该字符引用 QString s = "Montreal"; s.remove(1, 4); // s ==

QString arg使用

笑着哭i 提交于 2020-03-05 15:39:04
QString arg使用 参考链接: qstring arg()使用 更正: double d = 12.345689 ; str = QString ( "delta: %1" ) . arg ( d , 0 , 'e' , 4 ) ; //输出为:"delta: 1.234e+01" qDebug ( ) << QObject :: tr ( "arg(d, 0,'e',4):" ) << str ; str = QString ( "delta: %1" ) . arg ( d , 0 , 'E' , 4 ) ; //输出为:"delta: 1.234E+01" qDebug ( ) << QObject :: tr ( "arg(d, 0,'E',4):" ) << str ; // "arg(d, 0,'e',4):" "delta: 1.2346e+01" // "arg(d, 0,'E',4):" "delta: 1.2346E+01" 来源: CSDN 作者: 如意娘 链接: https://blog.csdn.net/qq_40243430/article/details/104671640

学习QT之容器类

断了今生、忘了曾经 提交于 2020-03-01 12:27:17
学习QT之容器类 Qt提供了一组通用的基于模板的容器类。对比C++的标准模板库中的容器类,Qt的这些容器更轻量、更安全并且更容易使用。此外,Qt的容器类在速度、内存消耗和内联(inline)代码等方面进行了优化(较少的内联代码将说件可执行程序的大小)。 存储在Qt容器中的数据必须是可赋值的数据类型,也就是说,这种数据类型必须提供一个默认的构造函数、一个复制构造函数和一个赋值操作运算符。 这样的数据类型包含了通常使用的大多数数据类型,包括基本数据类型(如int和double等)和Qt的一些数据类型(如QString、QDate和QTime等)。不过,Qt的QObject及其他的子类(如QWidget和QDialog等)是不能存储在容器中的,例如: QList list; ,一个可代替的方案是存储QObject及其子类的指针,例如:QList<QToolBar *> list。容器也可以嵌套使用,例如:QHash<QString,QList >; 注意容器类嵌套时后面的 > 之间 一定要加一个空格 ,否则,C++编译器会将两个 > 符号解释为 >> ,导致无法通过编译器编译。 一、QList类、QLinkedList类和QVector类 1、QList类 QList是迄今为止最常用的容器类,它存储给定数据类型T的一列数值。继承自QList类的子类有QItemSelection

TypeError: PyQt4.QtCore.QVariant python3.x

倖福魔咒の 提交于 2020-02-29 19:29:55
Python plugin API changes from 1.8 to 2.0 Python plugin API changes from 1.8 to 2.0 SIP API upgrade QVariant removed QSettings return type Replace QString methods Replace QStringList with list Remove QVariant calls Replace QList methods with python list function Replace signals with new style signals and connections Vector layer API changes QgsFeatureRequest replaces select(), featureAtId() Getting/setting QgsFeature attributes simplified Plugin repository and metadata changes Making a plugin compatible with all QGIS versions Testing for QGIS version Testing for SIP api version (QGIS 2 uses

解决QT QString 获取中文文件地址

拜拜、爱过 提交于 2020-02-28 05:04:30
1.头文件加上 #include <QTextCodec> 2.QString 获取拖拽或file对话框信息 3.先转为std::string ,然后由string 转为QString QTextCodec *code = QTextCodec::codecForName("GB2312");// fix Chinese name; std::string std_filename = code->fromUnicode(QfileName).data(); QString fileName =QString::fromLocal8Bit(std_filename.c_str()); 4.后续再调用 来源: CSDN 作者: 谢娘蓝桥 链接: https://blog.csdn.net/xinshuwei/article/details/104537822

三十七、QT之日志输出

偶尔善良 提交于 2020-02-28 03:15:46
1.创建自定义消息处理器,并注册到系统 在项目的 main.cpp 中设置日志输出 # include "widget.h" # include <QApplication> # include <QMutex> # include <QFile> # include <QDateTime> # include <QTextStream> //消息处理器 QtMessageHandler defaultHandler = NULL ; void outputMessage ( QtMsgType type , const QMessageLogContext & context , const QString & msg ) { QString text ; switch ( type ) { case QtDebugMsg : text = QString ( "Debug:" ) ; break ; case QtInfoMsg : text = QString ( "Info:" ) ; break ; case QtWarningMsg : text = QString ( "Warning:" ) ; break ; case QtCriticalMsg : text = QString ( "Critical:" ) ; break ; case QtFatalMsg