Pyqt4无边框窗体拖动的代码

aries 发表于 2012-10-22 1943 次浏览

这个UI是用Qt designer生成的,自己没有系统的学习过Python,有好多东西都走了弯路了!

这里记录一下,感谢google,感谢stackoverflow

只是有一样不爽,现在google.com.hk搜索出来的东西不能直接打开了,只能挂代理上....

代码:

# -*- coding: utf-8 -*-
# Created: Mon Oct 22 16:57:35 2012
#      by: PyQt4 UI code generator 4.9.5
#
# WARNING! All changes made in this file will be lost!

from PyQt4 import QtCore, QtGui ,Qt

try:
    _fromUtf8 = QtCore.QString.fromUtf8
except AttributeError:
    _fromUtf8 = lambda s: s

class Ui_myPopForm(object):
    def setupUi(self, myPopForm):
        myPopForm.setObjectName(_fromUtf8("myPopForm"))
        myPopForm.setWindowModality(QtCore.Qt.NonModal)
        myPopForm.resize(780, 600)
        myPopForm.setStyleSheet(_fromUtf8("border:3px solid rgb(0, 0, 0);n"
"background-color: rgb(255, 255, 255);"))
        self.centralWidget = QtGui.QWidget(myPopForm)
        self.centralWidget.setObjectName(_fromUtf8("centralWidget"))
        self.modelTopbar = QtGui.QLabel(self.centralWidget)
        self.modelTopbar.setGeometry(QtCore.QRect(3, 3, 774, 40))
        self.modelTopbar.setStyleSheet(_fromUtf8("background-color:#dddddd;border:0;border-bottom:1px solid #cccccc"))
        self.modelTopbar.setText(_fromUtf8(""))
        self.modelTopbar.setObjectName(_fromUtf8("modelTopbar"))
        self.closeBtn = QtGui.QPushButton(self.centralWidget)
        self.closeBtn.setGeometry(QtCore.QRect(753, 15, 15, 15))
        self.closeBtn.setCursor(QtGui.QCursor(QtCore.Qt.PointingHandCursor))
        self.closeBtn.setStyleSheet(_fromUtf8("border:0;background-image:url(images/top_close.png);"))
        self.closeBtn.setText(_fromUtf8(""))
        self.closeBtn.setObjectName(_fromUtf8("closeBtn"))
        self.topTitle = QtGui.QLabel(self.centralWidget)
        self.topTitle.setGeometry(QtCore.QRect(15, 15, 661, 16))
        self.topTitle.setStyleSheet(_fromUtf8("border:none;background-color:none;n"
"font: 12pt "微软雅黑";"))
        self.topTitle.setObjectName(_fromUtf8("topTitle"))
        myPopForm.setCentralWidget(self.centralWidget)

        self.retranslateUi(myPopForm)
        QtCore.QObject.connect(self.closeBtn, QtCore.SIGNAL(_fromUtf8("clicked()")), myPopForm.close)
        QtCore.QMetaObject.connectSlotsByName(myPopForm)
        #无边框
        myPopForm.setWindowFlags(Qt.Qt.FramelessWindowHint)

    def retranslateUi(self, myPopForm):
        myPopForm.setWindowTitle(u'小米粥(xiaomizhou.net)')
        self.topTitle.setText(u'小米粥(xiaomizhou.net)')

class renderApp(QtGui.QMainWindow):
    def __init__(self, parent=None):
        super(renderApp, self).__init__(parent)
        self.ui = Ui_myPopForm()
        self.ui.setupUi(self)
        
    def mousePressEvent(self,event):
       #鼠标点击事件
       if event.button() == QtCore.Qt.LeftButton:
           self.dragPosition = event.globalPos() - self.frameGeometry().topLeft()
           event.accept()
    def mouseMoveEvent(self,event):
       #鼠标移动事件
        if event.buttons() ==QtCore.Qt.LeftButton:
            self.move(event.globalPos() - self.dragPosition)
            event.accept()   

if __name__ == "__main__":
    import sys
    app = QtGui.QApplication(sys.argv)
    render = renderApp()
    render.show()
    sys.exit(app.exec_())

0条评论

如需评论,请填写表单。
换一个

记住我的信息