QT 使用QSS实现圆角对话框
圆角对话框有很多办法,一般是用代码重绘的方式,比较复杂,这一个高仿360的界面给的代码,比较复杂,放入我的QDialog的窗口总是不生效:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow){
ui->setupUi(this);
setWindowFlags(Qt::FramelessWindowHint);//隐藏边框和标题栏
//生成一张位图
QBitmap objBitmap(size());
//QPainter用于在位图上绘画
QPainter painter(&objBitmap);
//填充位图矩形框(用白色填充)
painter.fillRect(rect(),Qt::white);
painter.setBrush(QColor(0,0,0));
//在位图上画圆角矩形(用黑色填充)
painter.drawRoundedRect(this->rect(),5,5);
//使用setmask过滤即可
setMask(objBitmap);
//设置背景
QPalette pal;
QPixmap pixmap(QDir::toNativeSeparators
(":/image/frame.png"));
pal.setBrush(QPalette::Window, QBrush(pixmap));
setPalette(pal);
}
简单实现圆角窗口