看函数名应该也知道这个函数的功能,设置窗口的标题。
函数原型:
void setWindowTitle(const QString &); //传入一个字符串作为窗口的标题
该函数功能为设置窗口模态。
函数原型:
void setWindowModality(Qt::WindowModality windowModality);
WindowModality 是一个枚举值。它有三个值。
设置为 Qt::NonModal 不阻塞任何窗口,设置为 Qt::WindowModal 值阻塞父窗口,设置为 Qt::ApplicationModal 阻塞所有窗口。阻塞窗口意味着你只有处理完当前窗口的操作才能操作其它窗口。
该函数功能为设置窗口风格。
void setWindowFlags(Qt::WindowFlags type);
1.在设计模式下通过 Ui 指针访问控件。
ui->label->setText("我是文本");
ui->label_4->setNum(3.1415);
ui->label_2->setPixmap(QPixmap("tree.png")); //传入一个 QPixmap 对象作为参数
QMovie* movie = new QMovie("cat.gif");
ui->label_3->setMovie(movie);
movie->start();
简单介绍一下怎么使用布局管理器,首先要设置你要添加的部件,如 lable 标签;edit 行编辑器;radio 按钮等部件。然后加入到布局管理器中,将这些部件设置成你想要的格式,再将该布局管理器添加到某个窗口上,窗口显示时,布局管理器设置好的布局也会显示。或者不用显示的添加,在布局管理器构造的时候直接指定它的父窗口,这样,它也会在指定的父窗口上显示,如:m_Layout=new QGridLayout(this); 。指定当前窗口为它的父窗口。
部件管理器添加部件:
headerLayout->addRow(lable,edit);
窗口添加部件管理器:
W1.setLayout(headerLayout);
QString str("字符串"); //形式1
QString str1="字符串1"; //形式2
QString str2=str1; //形式3
QString text="555";
int tmp=text.toInt(); //转换成 int 类型
double tmp1=text.toDouble(); //转换成 double 类型
text="555.555";
float tmp2=text.toFloat(); //转换成 float 类型
QString 类重载了加号运算符,使之可以直接进行字符串的拼接。
QString str="我是普通字符串";
qDebug()<<str<<endl;
str=",我可以使用 + 拼接字符串"+str; //拼接在字符串前面
qDebug()<<str<<endl;
str+=",也可以这样拼接"; //拼接在字符串后面
qDebug()<<str<<endl;
QString str=" ";
str.prepend("Hello"); //首部添加
str.append("World"); //尾部追加
插入函数:
QString str="Hello";
str.insert(5,"World");
qDebug()<<str<<endl;
替换函数:
QString str="Hello";
str.replace(0,5,"World");
qDebug()<<str<<endl;
QString str="2022/4/10";
QStringList timeList=str.split("/"); //以 ‘/’ 为分割符,用字符串链表接收分割后的字符串
foreach (QString ss, timeList) {
qDebug()<<ss;
}
两种形式,可以通过 append() 函数添加,也可以使用 “<<” 运算符直接加入。
QStringList list;
list.append("第一题"); //通过 append() 函数添加
list.append("第二题");
list<<"第三题" //使用 “<<” 运算符直接加入
<<"第四题"
<<"第五题";
可以通过 .at() 方法访问链表元素,也可以通过 【】 运算符直接访问。
for(int i=0;i<list.size();++i)
qDebug()<<list[i];
for(int i=0;i<list.size();++i)
qDebug()<<list.at(i);
list.removeFirst(); //删除链表首元素
list.removeLast(); //删除链表尾元素
list.removeOne("第二题"); //删除指定元素
list.removeAt(3); //通过下标删除指定元素
list.insert(0,"第一题"); //插入元素
list.clear(); //清除所有元素
上述 QStringList 能用的方法它都能用,而不同于 QStringList 的是 QList 容器能存储的不止 QString 类对象,还能存储很多基本的数据类型。
下文只介绍在介绍 QStringList 类时没有提到的一些方法。
即使用该迭代器既可以修改容器数据又可以读取容器数据。
QList<int>::iterator it=list.begin();
for(it;it!=list.end();++it){
(*it)++; //通过迭代器修改数据
qDebug()<<*it<<endl; //通过迭代器读数据
}
QList<int>::const_iterator c_it=list.constBegin();
for(c_it;c_it!=list.end();++c_it){
qDebug()<<*c_it<<endl; //可以通过迭代器读取数据
*c_it=*c_it+1; //不能通过该迭代器修改数据
}
QLinkedList 类继承自 QList 类,它不能通过 .at 方法和 [ ] 访问链表中元素。QList 类可以是因为它的底层维护了一个指针数组,分别指向链表中的元素。但 QLinkedList 类中没有这个指针数组。在链表需要存储很多元素的时候使用 QLinkedList 类效率会比 QList 高,因为它不需要维护底层指针数组的额外开销。