|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 ooxx7788 于 2017-6-26 16:04 编辑
1
计算器可以记录多次计算记录
2
每次计算时,还有单独的大字体人性化功能。
当然还有快捷键,=号用了小键盘的回车替代。更方便小键盘使用。不知道多快捷键怎么设定。
虽然界面上只设置了加减乘除,但因为是用python做的,实际上还支持**,//。也就是还能做幂运算和地板除。
好了,上面介绍结束,开始提问了。
1、可以看出,我采用的是无边框设计。拖动窗体功能呢,我已经实现了一部分。
目前可以拖动窗口的地方包括:
1)主窗体的侧边。也就是两侧非常细条的地方。
2)当第一次拖动之后,可以在数字按钮上实现鼠标拖动,但会出现鼠标指针跳动的情况(其实就是跳至上一次在窗体拖动的位置上)
我采用的无边框代码如下:
- self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowTitleHint)
复制代码
实现鼠标拖动的代码如下:
- 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()
复制代码
我想实现的可以拖动的部位包括,顶端menubar,中间的QBrowser,不知道应该怎么该。
2、从下图可以看出,关于中采用的Qmessage.about没有实现无边框效果,而且QSS布置也不知道怎么修改。因为我QSS的修改全是在QT designer里面完成的。这个是单独弹出来的窗体,所以我就不知道怎么设置了。
3
3、还有一个看我的代码中可以发现有大量的重复代码,形如:
- self.pushButton_0.clicked.connect(self.btn0)
- self.pushButton_1.clicked.connect(self.btn1)
- self.pushButton_2.clicked.connect(self.btn2)
- self.pushButton_3.clicked.connect(self.btn3)
- self.pushButton_4.clicked.connect(self.btn4)
- self.pushButton_5.clicked.connect(self.btn5)
复制代码
- def btn0(self):
- self.context += '0'
- self.textBrowser.setFontPointSize(22)
- self.textBrowser.setText(self.context)
-
- def btn1(self):
- self.context += '1'
- self.textBrowser.setFontPointSize(22)
- self.textBrowser.setText(self.context)
复制代码
自己考虑过,可能可以用字典进行一些调整,但是还不是太满意,不知道没有好的使之更pythonic的方法。
最后,附件是代码。
1. 拖动部分。 你的拖动代码写在了 主界面类里。 你想拖动哪个就在哪个类里也写一份。
- class Main():
- def dragCodes():
- pass
- class Menu():
- def dragCodes():
- # 这里注意move不再是Menu类move也就是不能是self.move
- # 你想主界面拖动就索引到主界面去。
- pass.
复制代码
重用优化部分。
如果设置之后基本不再改动。可以这样。
- class MyButton(QPushButton):
- def __init__(self, parent=None, text="", myText=""):
- super(...).__init__(text)
- self.parent = parent
- self.myText = myText
- self.clicked.connect(self.connectFunc)
- def connectFunc(self):
- self.parent.content += self.myText
- self.textBrowser.setFontPointSize(22)
- self.parent.textBrwoser.setText(self.parent.content)
复制代码
然后在创建self.pushButton_1...的时候直接self.pushButton_1 = MyButton(self, "button1", "1")
|
|