QT学习-----综合
来源:互联网 发布:python spark视频教程 编辑:程序博客网 时间:2024/06/06 21:36
由于QT的文档都是英文,本渣渣的英文水平为0,只能靠着谷歌翻译来勉强度日。
所以把用过的语法,学过的语句来记录下来,已备不时之需。
QAbstractButton
已知子类:
- QPushButton
- QToolButton
- QCheckBox
connect(ui.PushButton, SIGNAL(clicked()), this, SLOT(Function()));//单击事件 connect(ui.toolButton, SIGNAL(toggled(bool)), this, SLOT(OnToolButtonX(bool)));//信号:按键按下或者弹起。需要Checkable属性为真。 isChecked();//判断按下还是弹起状态,需要Checkable属性为真。否则无效。
SIGNAL
connect(ui.lineEdit, SIGNAL(selectionChanged()), this, SLOT(Function()));//获得焦点事件。
Function
成员函数,各个控件有通用的。
ui.checkBox->isChecked();//判断是否选中,返回bool ui.checkBox->setEnabled(true);//设置控件是否被禁止。参数为bool.
QmessageBox
QMessageBox megBox;//声明并定义变量。 mesBox.setText("abc");//设置信息框文字。 mesBox.exec();//显示框体。 QMessageBox::information(this, "Error", "bad bady"); //弹出信息框,提示信息,标题.
Qcombobox
connect(ui.comboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(OncomboBox(int)));//信号:当索引改变的时候。 ui.comboBox->addItem("lineEdit", "1");//插入文本并且插入关联数据 ui.comboBox->insertItem(2, "yxz", "5");//插入文本和关联数据再索引位置为2。 int index = ui.comboBox->currentIndex();//获得当前索引。 QString text = ui.comboBox->itemData(index).toString();//获得索引位置的关联数据 QString text1 = ui.comboBox->itemText(index);//获得索引位置的文本 QString text2 = ui.comboBox->currentText();//获得文本 ui.comboBox->setEditable(true);//设置comboBox是否可以编辑。 ui.comboBox->setEditText("asdf");//设置当前文本.
字符集
- 编码和字节的问题:
- 各种编码库的不同,定义的长度不同。例如:ascii码只占用1个字节,GBK编码却要占用2个字节。这是规定不同导致。
- Unicode 又称统一码,解决了各国编码不统一的问题,有3种格式:
- utf-8 比较常用的就是utf-8.utf-8是自动判断字的二进制编码,用1-4的字节来存储。
- utf-16 2个字节存储。例如:’我’GBK下3个字节,用utf-8也是3个字节,但是用utf-16,2个字节就能保存。
- utf-32 4个字节存储。
QTextCodec
QTextCodec* pCode = QTextCodec::codecForName("GBK");//先设置这个编码格式。(匹配解码器,未匹配返回0) if(!pCode) return ""; QByteArray arr = pCode->fromUnicode(qstr);//将str用Unicode-16的编码解码,并且返回QByteArray类型。 string cstr = arr.constData();//和data略有区别,data会导致深拷贝,constData不会进行拷贝,只是只读。 QString str = "你好中国";//编码不对。cpp默认GBK编码,所以"你好中国"这个字符串字面常量是一个GBK编码的。QString默认编码unicode-16 ui.lineEdit->setText(str);//所以显示乱码。 //GBK转到QString QString str1 = QString::fromLocal8Bit("你好中国");//转换到本地默认编码,从GBK转到QString ui.lineEdit->setText(str1); //QSstring 转 GBK QString str = ui.lineEdit->text(); QByteArray bytes = str.toLocal8Bit();//转换到本地默认编码,vs也就是GBK编码了。所以转到GBK编码。// const char * gbk = bytes.data();//获取地址就好了。 //utf-8 转 utf-16 char utf8[] = {0xE5, 0x88, 0x98,0xE4, 0xBA, 0x9A, 0xE8, 0xA5, 0xBF,0};//UTF-8编码内存. QString str2 = QString::fromUtf8(utf8);//转换UTF-16 //utf-16 转 utf-8 QString str = ui.lineEdit->text();//获得文本 QByteArray bytes = str.toUtf8();//转换到utf-8 const char * utf8 = bytes.data();//获得地址 int size = bytes.size(); QString str1 = QString::fromUtf8(utf8);//再转换到utf-16格式。
QDialog(对话框)
- 先创造一个类,父类是QDialog
- 然后在主程序加载这个类的头文件即可进行操作
//构造函数内添加初始值,添加一个const char * text; Dialog(const char * text,QWidget *parent = 0); //新建一个Dialog类型。 Dialog buf("shaofa", this); int ret = buf.exec();//模式对话框会阻塞程序。点击按钮会调用对象框的按钮时间。返回值由自己设置。 if(ret == buf.Accepted && buf.m_user == buf.m_password)//如果点击确定的话。 { qDebug() << buf.m_user << buf.m_password; }
QString filename = QFileDialog::getOpenFileName(this, x);//设置标题。x代表UTF-16编码,打开文件 QString filename = QFileDialog::getSaveFileName(this, GBK::ToUnicode("保存文件"));//保存文件
阅读全文
0 0
- QT学习-----综合
- Qt学习08——布局管理综合应用
- Qt问题综合
- SQL综合应用学习
- SQL综合应用学习
- 嵌入式学习网站综合
- 综合学习网站
- Grep 全套综合学习
- 综合学习资源
- java学习笔记:综合
- Java学习错误综合
- QT中的模型/视图综合讲解
- QT的main.cpp源文件综合设置
- 深度学习学习综合资料
- [QT]QT教程之实例分析[六]综合布局实例
- SQL综合应用学习(二)
- C#学习:字符串综合练习
- Netfilter/Iptables学习(综合整理)
- 千万不要误用 java 中的 HashCode 方法
- 单例模式解析properties 配置文件
- 列表:一个打了激素的数组3
- 《deep learning》学习笔记(6)——深度前馈网络
- HDU 6196 happy happy happy(暴搜+剪枝+dp)
- QT学习-----综合
- Algorithms(四)Employee Importance
- 第五章
- Win32 application和Win32 Console application的区别
- 顺序性容器(vector&list&deque)
- EditText中maxLines属性无效的问题
- 第一章
- Zookeeper集群
- Codeforces Round #436 (Div. 2) 做题总结