无边框 + 圆角
参考:链接
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