您的位置:首页 > 编程语言 > Qt开发

pyqt4 borderless window

2017-02-10 00:42 316 查看

coding:utf-8

import sys

from PyQt4.QtGui import (QApplication, QWidget, QPushButton, QLineEdit, QHBoxLayout, QVBoxLayout, QColorDialog, QInputDialog, QFileDialog, QCursor, QColor)

from PyQt4.QtCore import Qt

class Example(QWidget):

def init(self):

super(Example, self).init()

self.style = """

QPushButton{background-color:grey;color:white;}

#window{ background:pink; }

#test{ background-color:black;color:white; }

"""

self.setStyleSheet(self.style)

self.setWindowFlags(Qt.FramelessWindowHint)

self.initUI()

def initUI(self):
self.setGeometry(300, 300, 300, 220)
self.setWindowTitle('test')
self.setObjectName("window")

btn1 = QPushButton(u"关闭", self)
btn1.clicked.connect(self.close)
btn1.setObjectName('test')
btn2 = QPushButton(u"最小化", self)
btn2.clicked.connect(self.showMinimized)
btn3 = QPushButton(u"最大化", self)
btn3.clicked.connect(self.showMaximized)

btn11 = QPushButton(u"改变背景", self)
btn11.clicked.connect(self.showColor)
btn22 = QPushButton(u"选择文件", self)
btn22.clicked.connect(self.showFile)
btn33 = QPushButton(u"对话框", self)
btn33.clicked.connect(self.showDialog)
self.linet1 = QLineEdit("111111", self)
self.linet2 = QLineEdit("ssssssss", self)

hbox1 = QHBoxLayout()  # 水平布局
hbox1.addWidget(btn1)
hbox1.addWidget(btn2)
hbox1.addWidget(btn3)
hbox2 = QHBoxLayout()  # 水平布局
hbox2.addWidget(btn11)
hbox2.addWidget(btn22)
hbox2.addWidget(btn33)
vbox = QVBoxLayout()  # 垂直布局
vbox.addLayout(hbox1)
vbox.addLayout(hbox2)
vbox.addWidget(self.linet1)
vbox.addWidget(self.linet2)
self.setLayout(vbox)

self.show()

def mousePressEvent(self, event):
if event.button() == Qt.LeftButton:
self.m_drag = True
self.m_DragPosition = event.globalPos() - self.pos()
event.accept()
self.setCursor(QCursor(Qt.OpenHandCursor))

def mouseMoveEvent(self, QMouseEvent):
if Qt.LeftButton and self.m_drag:
self.move(QMouseEvent.globalPos() - self.m_DragPosition)
QMouseEvent.accept()

def mouseReleaseEvent(self, QMouseEvent):
self.m_drag = False
self.setCursor(QCursor(Qt.ArrowCursor))

def showColor(self):
col = QColorDialog.getColor()
if col.isValid():
self.setStyleSheet(self.style + "#window{background:%s}" % col.name())

def showDialog(self):
text, ok = QInputDialog.getText(self, u'对话框',
u'请输入你的名字:')

if ok:
self.linet1.setText(str(text))

def showFile(self):
fname = QFileDialog.getOpenFileName(self, 'Open file', '/home')

if fname[0]:
f = open(fname[0], 'r')

with f:
data = f.readline()
self.linet1.setText(data)

if name == 'main':

app = QApplication(sys.argv)

ex = Example()

sys.exit(app.exec_())
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: