Q: 如何让qt主窗口显示在屏幕指定位置
A:
QDesktopWidget *deskdop = QApplication::desktop(); move((deskdop->width() - this->width())/2, (deskdop->height() - this->height())/2);
Q: QFrame的属性
A:
<span style="color:#000000;">QApplication a(argc, argv);
QWidget *win = new QWidget;
QLabel *label1 = new QLabel("box");
QLabel *label2 = new QLabel("panel");
QLabel *label3 = new QLabel("winpanel");
QLabel *label4 = new QLabel("h line");
QLabel *label5 = new QLabel("v line");
QLabel *label6 = new QLabel("styled panel");
label1->setFrameStyle(QFrame::Box | QFrame::Raised);
label1->setLineWidth(2);
label2->setFrameStyle(QFrame::Panel | QFrame::Raised);
label2->setLineWidth(2);
label3->setFrameStyle(QFrame::WinPanel | QFrame::Raised);
label3->setLineWidth(2);
label4->setFrameStyle(QFrame::HLine | QFrame::Raised);
label4->setLineWidth(2);
label5->setFrameStyle(QFrame::VLine | QFrame::Raised);
label5->setLineWidth(2);
label6->setFrameStyle(QFrame::StyledPanel | QFrame::Raised);
label6->setLineWidth(2);
QVBoxLayout *layout = new QVBoxLayout;
layout->addWidget(label1);
layout->addWidget(label2);
layout->addWidget(label3);
layout->addWidget(label4);
layout->addWidget(label5);
layout->addWidget(label6);
win->setLayout(layout);
win->show();
return a.exec();</span>
运行效果:
Q: qobject_cast怎么用
A: qobject_cast用于向下转化(向下转化:父类向子类转化,此时有个类型检测过程,像dynamic_cast)
QObject *obj = new QTimer;// QTimer inherits QObject
QTimer *timer = qobject_cast<QTimer *>(obj);// 这里就是下行转换
Q: 如何设置窗口的背景图片
A:
方法一:
QPalette palette;
// palette.setBrush(QPalette::Background, QBrush(Qt::red));
palette.setBrush(QPalette::Background, QBrush(QPixmap(":/icons/Res/images/back.png")));
this->setPalette(palette);
//如果只有前三句是不会生效的。必须加上最后ptr->setAutoFillbackground(true)才生效!
this->setAutoFillBackground(true);
方法二:
/*
* 该方法比前一种方法的改进之处是:因为palette()这个函数在QWidget和QGraphicsWidget中都有,
* 所以上述代码可以在这两种体系中通用!
*/
QPalette palette;
palette = this->palette();
palette.setBrush(QPalette::Background, QBrush(QPixmap(":/icons/Res/images/back.png")));
this->setPalette(palette);
this->setAutoFillBackground(true);