我正在为 GUI 创建一个布局,该布局应该有一个用于主布局的 QVBoxLayout 和一个用于子布局的 QHBoxLayout,但由于某种原因,它给了我这个错误。
这是代码:
class Application(QtGui.QMainWindow):
err1 = QtCore.pyqtSignal(int)
reset = QtCore.pyqtSignal()
def __init__(self, parent=None):
super(Application, self).__init__()
self.setGeometry(300, 300, 600, 600)
self.setWindowTitle('IPv6 traffic generator')
PlotWidget(self)
self.createwidgets()
def createwidgets(self):
self.mainWidget = QtGui.QWidget(self)
self.setCentralWidget(self.mainWidget)
self.mainLayout = QtGui.QVBoxLayout(self.mainWidget)
self.hLayout = QtGui.QHBoxLayout(self.mainLayout)
---- creating widgets ----
self.hLayout.addWidget(self.label2)
self.hLayout.addWidget(self.menubutton1)
self.hLayout.addWidget(self.label3)
self.hLayout.addWidget(self.button2)
self.hLayout.addWidget(self.button3)
self.mainLayout.setLayout(self.hLayout)
self.mainLayout.show()
Run Code Online (Sandbox Code Playgroud) 我正在尝试创建一个类,该类具有一个函数,该函数每 5 秒启动一个自调用循环,该循环将使用 http.request 库检查某个服务器设置,并且当该设置与调用参数中定义的设置匹配时,它会发出一个信号并停止调用自己。(我实际上还没有开始编写工作本身,只是尝试进行设置工作)。
\n问题是我有一种调用服务器的方法,如果直接从组件调用,该方法可以工作,但是当模型中的函数尝试使用它时,它会给出以下错误:
\nERROR TypeError: Cannot read properties of undefined (reading 'request')\nRun Code Online (Sandbox Code Playgroud)\n这是我正在使用的基本逻辑:
\n组件:
\nimport { Component, OnInit, EventEmitter } from '@angular/core';\nimport { ServerService } from '../../server.service';\nimport { SafePipe } from '../../_helpers/safe.pipe';\nimport { SharedVariables } from '../../_services/shared-variables.service';\nimport { ServerSettingValueObserver } from '../../_models/valueObservers.model';\n\n@Component({\n selector: 'app-analytics',\n templateUrl: './analytics.component.html',\n styleUrls: ['./analytics.component.css']\n})\nexport class AnalyticsComponent implements OnInit {\n analyticsUrl;\n iframeStatus = new EventEmitter();\n\n constructor(private server: ServerService, private sharedVariables: SharedVariables, private safe: SafePipe) { }\n\n ngOnInit(): void {\n …Run Code Online (Sandbox Code Playgroud) 我有一个服务器套接字,它侦听传入的连接并为每个客户端创建新的套接字。我有一个 while 循环来让服务器负责(当没有连接传入时能够使用按钮关闭它),为此我.select用来检查是否有任何连接。我遇到的问题.select是由于某种原因阻塞。它一直等到有连接,而不是检查连接然后继续。
def serverstart(self):
self.buttonswitch("1")
self.host = self.intip
self.port = 5000
s = socket.socket(socket.AF_INET6)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.setblocking(0)
s.bind((self.host, self.port))
inputs = [ s ]
s.listen(5)
self.serverstatus = "1"
while s:
inputready, outputready, exceptready = select.select(inputs, [], [] )
if inputready == inputs and self.serverstatus == "1":
print inputready
c, addr = s.accept()
ct = threading.Thread(target=self.client_thread, args=[c, addr])
ct.start()
if self.serverstatus == "0":
break
s.close()
print "Closing socket"
self.buttonswitch("0")
Run Code Online (Sandbox Code Playgroud)
编辑:
为工作的非阻塞选择解决方案添加了超时
inputready, outputready, exceptready = …Run Code Online (Sandbox Code Playgroud)