我想将两个变量连接到两个不同的类但我不知道我正在尝试做的是否可能.
例如,如果我有这两个类:
class one():
def __init__(self):
self.a = 0
def compute(self):
self.a = self.a + 1
class two():
def __init__(self):
self.a = 0
self.C_one = one()
self.link()
def link(self):
self.a = self.C_one.a
def compute(self):
self.C_one.compute()
print('C_one a=',self.C_one.a )
print('C_two a=',self.a )
C_two = two()
for i in range(5):
C_two.compute()
Run Code Online (Sandbox Code Playgroud)
在类中,two我想将变量a与a类的变量连接起来one,所以self.a = self.C_one.a每次执行时都不必显式调用C_two.compute
示例中的代码给了我这个:
C_one a= 1
C_two a= 0
C_one a= 2
C_two a= 0
C_one a= 3
C_two …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 runningnakerrun 来可视化使用 cProfile 制作的一些配置文件,但我无法打开它。我尝试使用以下命令打开我的文件:
C:\Users\Maxime\PycharmProjects\NMMSofware>c:\Anaconda2\Scripts\runsnake.exe o.prof
Run Code Online (Sandbox Code Playgroud)
或者
C:\Anaconda2\Scripts>runsnake.exe
Run Code Online (Sandbox Code Playgroud)
我还尝试通过双击 runningnake.exe 应用程序从 Scripts 文件夹运行它,但没有任何附加内容。
我尝试重新安装它但没有成功。
我没主意了。
我的一些使用 pyqt5 的代码遇到了一些问题。当我的 Qt 类出现问题时,控制台不会记录有关崩溃发生原因的任何信息。例如使用此代码:
rom PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
import sys
class SurfViewer(QMainWindow):
def __init__(self, parent=None):
super(SurfViewer, self).__init__()
self.parent = parent
self.centralWidget = QWidget()
self.color = self.centralWidget.palette().color(QPalette.Background)
self.setCentralWidget(self.centralWidget)
self.plotview = QGroupBox(" ")
self.layout_plotview = QVBoxLayout()
self.Button_Crash= QPushButton('Crash!')
self.layout_plotview.addWidget(self.Button_Crash)
self.centralWidget.setLayout(self.layout_plotview)
self.Button_Crash.clicked.connect(self.TestForCrash)
def TestForCrash(self,):
a=b
return
def main():
app = QApplication(sys.argv)
ex = SurfViewer(app)
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
由于功能b未知TestForCrash,Qt 窗口刚刚退出,但我在控制台中什么也没有。我想知道它们是否是一种强制控制台自动打印正在发生的事情的线索的方法。
现在我正在使用 atry except来解决这个问题,但我不太喜欢这个想法:
from PyQt5.QtGui …Run Code Online (Sandbox Code Playgroud) 是否可以使用 AnchoredText 将文本渲染为粗体?
plt.figure()
ax = plt.subplot(3,1,1)
anchored_text = AnchoredText("a", loc=2,borderpad=0.,frameon=False)
ax.add_artist(anchored_text)
Run Code Online (Sandbox Code Playgroud)
我找不到可以添加什么参数来使文本变为粗体。
我想要一个带有QMessageBox移动 GIF 作为图标的。所以我做了这个:
from PyQt5.QtGui import *
from PyQt5.QtWidgets import *
import os
import sys
def msg_wait(s):
msg = QMessageBox()
msg.setIconPixmap(QPixmap('wait.gif').scaledToWidth(100))
msg.setText(s)
msg.setWindowTitle(" ")
msg.setModal(False)
# msg.setStandardButtons(QMessageBox.Ok)
msg.show()
return msg
class SurfViewer(QMainWindow):
def __init__(self, parent=None):
super(SurfViewer, self).__init__()
self.parent = parent
self.centralWidget = QWidget()
self.setCentralWidget(self.centralWidget)
self.msg=msg_wait('blablabla')
self.msg.setStandardButtons(QMessageBox.Cancel)
def main():
app = QApplication(sys.argv)
ex = SurfViewer(app)
ex.setWindowTitle('NMM Stimulator')
ex.showMaximized()
ex.show()
# ex.move(0, 0)
# ex.resizescreen()
sys.exit(app.exec_( ))
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
GIF 的位置是:
但结果是一个固定的图像。我怎样才能让它动画化?我在QMovie课堂上尝试了一些东西,但无法在QMessageBox.setIconPixmap函数中设置它
我正在尝试修改 groupbox 的颜色边框,但是当我这样做时,它也会修改内部小部件的边框,例如:
这是我到目前为止的代码:
import sys
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
class tabdemo(QMainWindow):
def __init__(self):
super(tabdemo, self).__init__()
self.setGeometry(50,50,500,500)
self.centralWidget = QWidget()
self.setCentralWidget(self.centralWidget)
self.mainB = QVBoxLayout()
self.GB = QGroupBox("GroupBox")
self.GB.setStyleSheet("QGroupBox { border: 1px solid red;}")
self.GB.setFixedWidth(100)
self.mainHBOX = QVBoxLayout()
self.GB1 = QGroupBox("GroupBox1")
self.GB1.setFixedHeight(100)
self.GB2 = QGroupBox("GroupBox2")
self.GB2.setFixedHeight(100)
self.GB3 = QGroupBox("GroupBox3")
self.GB3.setFixedHeight(100)
self.mainHBOX.addWidget(self.GB1)
self.mainHBOX.addWidget(self.GB2)
self.mainHBOX.addWidget(self.GB3)
self.GB.setLayout(self.mainHBOX)
self.mainB.addWidget(self.GB)
self.centralWidget.setLayout(self.mainB)
def main():
app = QApplication(sys.argv)
ex = tabdemo()
ex.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
重要的一行是 …
我正在尝试用setattr一个字符串更新一个类的属性。因此,例如使用此代码:
class ClassA():
def __init__(self):
self.A = 0
class ClassB():
def __init__(self):
self.CA = ClassA()
CB = ClassB()
setattr(CB, "CA.A", 2)
print(CB.CA.A)
Run Code Online (Sandbox Code Playgroud)
当我这样做setattr(CB, "CA.A", 2),它不会更新属性A中的CA类CB。相反,它会创建另一个属性,如图所示:
然后当我打印时print(CB.CA.A),我得到一个 0 值。我不明白为什么会发生这种情况以及是否存在解决方案?