Qt:QDialog 界面美化

无边框 + 圆角

参考:链接

1. 最底层添加 QFrame,其他控件都布置在 frame 内 (也可以用 QWidget作为底层)
2. 设置 QFrame 样式
QFrame
{
    
    
	background-color:#ffffff;
	border:none;
	border-radius:10px;
}
3. 设置QDialog对话框的属性
    setWindowFlags(Qt::FramelessWindowHint | Qt::Tool); // 无边框设置
    setAttribute(Qt::WA_TranslucentBackground);// 背景透明设置
例. 一个对话框美化界面

参考:链接
在这里插入图片描述

#frame
{
    
    
 	background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(251,102,102, 220), stop:1 rgba(20,196,188, 230));
	border:none;
	border-radius:10px;
}
#lineEdit_pwd
{
    
    
	font: 25 14pt '微软雅黑 Light';
	color: rgb(31,31,31);
	padding-left:20px; 
	background-color: rgb(255, 255, 255);
	border:1px solid rgb(20,196,188);
	border-radius:10px;
}
#lineEdit_email
{
    
    
	font: 25 14pt '微软雅黑 Light';
	color: rgb(31,31,31);
	padding-left:60px; 
	background-color: rgb(255, 255, 255);
	border:2px solid rgb(20,196,188);
	border-color:qlineargradient(spread:pad, x1:0, y1:0, x2:1, y2:0, stop:0 rgba(51,12,12, 100), stop:1 rgba(210,116,118, 210));
	border-radius:10px;
}
QPushButton
{
    
    
	font: 25 14pt '微软雅黑';
	color: rgb(255,255,255);
	background-color: rgb(20,196,188);
	border:none;
	border-radius:10px;
}
QPushButton:hover
{
    
    
	background-color: rgb(22,218,208);
}
QPushButton:pressed
{
    
    
	background-color: rgb(17,171,164);
}

窗口拉伸

参考: 添加链接描述

窗口移动

    # 安装窗口移动组件(这里简单做的窗口移动,没有像拉伸功能一样进行封装)
    self.bLeftPressed = False
    self.mouseLeftPressPos = None
 
    def mousePressEvent(self, mouseEvent):
        if mouseEvent.button() == Qt.LeftButton:
            self.bLeftPressed = True
            self.mouseLeftPressPos = mouseEvent.globalPos() - self.pos()
            mouseEvent.accept()
    def mouseMoveEvent(self,mouseEvent):
        if self.bLeftPressed:
            self.move(mouseEvent.globalPos() - self.mouseLeftPressPos)
            mouseEvent.accept()
    def mouseReleaseEvent(self, mouseEvent):
        self.bLeftPressed = False

其他参考链接:
添加链接描述
添加链接描述

猜你喜欢

转载自blog.csdn.net/CXYYL/article/details/129275039