(1)用于调试程序。
QMessageBox *informationBox =new QMessageBox (QMessageBox::Information, tr(""), tr(""),0);//用于调试程序
informationBox->exec();
if (informationBox->close())
{
delete message;
}
//或者
QMessageBox::information(0, tr("Error"), tr("Failed!"));
(2)创建标准文件对话框
QFileDialog *dialog = new QFileDialog( this,"file dialog name" ,".",tr("files(*.jpg)"));
if ( dialog->exec()== QFileDialog::Accepted)
{
}
(3)QString 转char*
QString string;
QByteArray temp = string.toLatin1();
char* charString = temp.data();
(4)中文乱码解决办法
#include <QTextCodec>
QTextCodec::setCodecForTr(QTextCodec::codecForLocale());//支持中文显示
(5)给对话框添加最大化最小化按钮
Qt::WindowFlags flags = Qt::Dialog;
flags |=Qt::WindowMinimizeButtonHint;
flags |=Qt::WindowMaximizeButtonHint;
setWindowFlags(flags);
(6)QString 转 std::string
QString qs;
std::string current_locale_text = qs.toLocal8Bit().constData();
(7)std::string 转QString
std::string str = "abc";
QString qstr = QString::fromStdString(str);
(8)建立对话框
如果要在构造函数中对对话框内容进行丰富的话, 其他代码要在SetupUi() 执行之后再写。否则会出现其他错误。
(9)QString 创建
QString str = QString( "%1\n%2\n%3\n%4\n").arg(str1).arg(str2).arg(str3).arg(str4) ;
(10)常用对话框
QMessageBox , QFileDialog 可直接调用其静态函数,方便。
QMessageBox::about();
QFileDialog::getOpenFileName();
(11)模态对话框
Dialog dialog(this);
if (dialog.exec())
{
//something else;
}
(12)非模态对话框
if (!dialog)
{
dialog = new Dialog(this);
//something else;
}
dialog->show();
dialog->raise();
dialog->activateWindow();
(13)关闭窗口时删除内存
MainWindow::MainWindow()
{
setAttribute(Qt::WA_DeleteOnClose);
}
更多设置参照Qt::WidgetAttribute。
(14)显示图片
搭配QScrollArea 和QLabel 来显示图片,切记QtDesigner 中设置QLabel 的MinimumSize 为 0,0。否则可能会显示不全图片。
(15)QMainWindow设置Layout
其中centerWidget中至少需要加入一个部件,再设置布局。然后可以将该部件删掉。
(16)Qt Designer中QWidget相关设置
sizePolicy设置为Expanding, Expanding.
minimumSize 和 maximumSize 再设置相关高度
(17)创建程序图标
VS中先新建.rc文件,打开后添加 IDI_ICON1 ICON DISCARDABLE "myappico.ico"
(18)以固定高度在widget中添加某一项
QtDesigner中调整Layout的layoutSizeConstraint为SetFixedSize。