日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python怎么做软件界面_python – 如何自定义桌面应用程序的标题栏和窗口

發(fā)布時間:2025/3/11 python 48 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python怎么做软件界面_python – 如何自定义桌面应用程序的标题栏和窗口 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

我如何自定義標(biāo)題欄(包括:關(guān)閉,最大化,最小化按鈕,標(biāo)題)和用PyQt編寫的桌面應(yīng)用程序框架,使其看起來像下面的圖像?我需要一種方法來指定我想用于標(biāo)題欄元素的顏色(按鈕,文本標(biāo)題和條形和按鈕的背景顏色).

我需要更改其窗口的代碼:

import sys

from PyQt5 import QtCore, uic

from PyQt5.QtWidgets import QApplication, QDialog

class MainWindow(QDialog):

def __init__(self, parent=None):

QDialog.__init__(self, parent)

self.setWindowFlags(QtCore.Qt.FramelessWindowHint)

self.resize(500, 600)

if __name__ == "__main__":

app = QApplication(sys.argv)

window = MainWindow()

sys.exit(app.exec_())

有沒有辦法做到這一點(diǎn)?我很欣賞這樣做的任何建議和想法.

#########################################################

## customize Title bar

## dotpy.ir

## iraj.jelo@gmail.com

#########################################################

import sys

from PyQt4 import QtGui

from PyQt4 import QtCore

from PyQt4.QtCore import Qt

class TitleBar(QtGui.QDialog):

def __init__(self, parent=None):

QtGui.QWidget.__init__(self, parent)

self.setWindowFlags(Qt.FramelessWindowHint);

css = """

QWidget{

Background: #AA00AA;

color:white;

font:12px bold;

font-weight:bold;

border-radius: 1px;

height: 11px;

}

QDialog{

Background-image:url('img/titlebar bg.png');

font-size:12px;

color: black;

}

QToolButton{

Background:#AA00AA;

font-size:11px;

}

QToolButton:hover{

Background: #FF00FF;

font-size:11px;

}

"""

self.setAutoFillBackground(True)

self.setBackgroundRole(QtGui.QPalette.Highlight)

self.setStyleSheet(css)

self.minimize=QtGui.QToolButton(self);

self.minimize.setIcon(QtGui.QIcon('img/min.png'));

self.maximize=QtGui.QToolButton(self);

self.maximize.setIcon(QtGui.QIcon('img/max.png'));

close=QtGui.QToolButton(self);

close.setIcon(QtGui.QIcon('img/close.png'));

self.minimize.setMinimumHeight(10);

close.setMinimumHeight(10);

self.maximize.setMinimumHeight(10);

label=QtGui.QLabel(self);

label.setText("Window Title");

self.setWindowTitle("Window Title");

hbox=QtGui.QHBoxLayout(self);

hbox.addWidget(label);

hbox.addWidget(self.minimize);

hbox.addWidget(self.maximize);

hbox.addWidget(close);

hbox.insertStretch(1,500);

hbox.setSpacing(0);

self.setSizePolicy(QtGui.QSizePolicy.Expanding,QtGui.QSizePolicy.Fixed);

self.maxNormal=False;

close.clicked.connect(self.close);

self.minimize.clicked.connect(self.showSmall);

self.maximize.clicked.connect(self.showMaxRestore);

def showSmall(self):

box.showMinimized();

def showMaxRestore(self):

if(self.maxNormal):

box.showNormal();

self.maxNormal= False;

self.maximize.setIcon(QtGui.QIcon('img/max.png'));

print '1'

else:

box.showMaximized();

self.maxNormal= True;

print '2'

self.maximize.setIcon(QtGui.QIcon('img/max2.png'));

def close(self):

box.close()

def mousePressEvent(self,event):

if event.button() == Qt.LeftButton:

box.moving = True; box.offset = event.pos()

def mouseMoveEvent(self,event):

if box.moving: box.move(event.globalPos()-box.offset)

class Frame(QtGui.QFrame):

def __init__(self, parent=None):

QtGui.QFrame.__init__(self, parent)

self.m_mouse_down= False;

self.setFrameShape(QtGui.QFrame.StyledPanel)

css = """

QFrame{

Background: #D700D7;

color:white;

font:13px ;

font-weight:bold;

}

"""

self.setStyleSheet(css)

self.setWindowFlags(Qt.FramelessWindowHint);

self.setMouseTracking(True);

self.m_titleBar= TitleBar(self);

self.m_content= QtGui.QWidget(self);

vbox=QtGui.QVBoxLayout(self);

vbox.addWidget(self.m_titleBar);

vbox.setMargin(0);

vbox.setSpacing(0);

layout=QtGui.QVBoxLayout(self);

layout.addWidget(self.m_content);

layout.setMargin(5);

layout.setSpacing(0);

vbox.addLayout(layout);

# Allows you to access the content area of the frame

# where widgets and layouts can be added

def contentWidget(self):

return self.m_content

def titleBar(self):

return self.m_titleBar

def mousePressEvent(self,event):

self.m_old_pos = event.pos();

self.m_mouse_down = event.button()== Qt.LeftButton;

def mouseMoveEvent(self,event):

x=event.x();

y=event.y();

def mouseReleaseEvent(self,event):

m_mouse_down=False;

if __name__ == '__main__':

app = QtGui.QApplication(sys.argv);

box = Frame()

box.move(60,60);

l=QtGui.QVBoxLayout(box.contentWidget());

l.setMargin(0);

edit=QtGui.QLabel("""I would've did anything for you to show you how much I adored you

But it's over now, it's too late to save our loveJust promise me you'll think of me

Every time you look up in the sky and see a star 'cuz I'm your star.""");

l.addWidget(edit)

box.show()

app.exec_()

總結(jié)

以上是生活随笔為你收集整理的python怎么做软件界面_python – 如何自定义桌面应用程序的标题栏和窗口的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。