所有显示窗口10

时间:2017-06-08 08:58:39

标签: qt pyqt windows-10 pyqt4 display

首先感谢您的帮助,我是一名unix管理员,对QT或Windows 10不太了解

我必须在Windows 10的所有显示器上使用winexe显示一个qt弹出菜单/应用程序来访问一个远程盒子,行为应该类似于下面的winexe命令:

winexe -U 'ad/user%xxxxxxx'  --system --interactive=1  //10.14.6.133 'msg * hello jello'

下面是我对PyQt4脚本的命令行:

winexe -U 'ad/user%xxxxxxx'  --system --interactive=1  //10.14.6.133 'cmd /c c:\python26\python.exe c:\scripts\bobo3.py'

它只是坐在那里,什么也看不见。我的猜测是它需要显示在所有活动的显示器上,我不知道如何做到这一点。

以下是代码,它在本地从cmd提示符运行时有效:

from optparse import OptionParser

from PyQt4 import QtGui, QtCore


class TopDialog(QtGui.QWidget):

    def __init__(self, title='Message', width=960, height=640, ):
        super(TopDialog, self).__init__()
        self.setFixedSize(width, height)
        self.setWindowFlags(QtCore.Qt.FramelessWindowHint | QtCore.Qt.WindowStaysOnTopHint)
        screen = QtGui.QDesktopWidget().screenGeometry()
        self.move((screen.width() - self.width())/2, (screen.height() - self.height())/2)

        if not isinstance(title, unicode):
            title = title.decode('utf-8')
        self.title_lb = QtGui.QLabel(title)
        self.title_lb.setAlignment(QtCore.Qt.AlignCenter)
        self.title_lb.setFrameStyle(QtGui.QFrame.StyledPanel | QtGui.QFrame.Sunken)

        self.message_lb = QtGui.QLabel()
        self.message_lb.setAlignment(QtCore.Qt.AlignCenter)
        self.message_lb.setMinimumSize(self.width()/2, self.height()/2)
        self.ok_bt = QtGui.QPushButton('OK')
        self.ok_bt.clicked.connect(self._ok_bt_clicked)

        self.main_lo = QtGui.QVBoxLayout()
        self.main_lo.addWidget(self.title_lb)
        self.main_lo.addStretch()
        self.main_lo.addWidget(self.message_lb)
        self.main_lo.addStretch()
        self.main_lo.addWidget(self.ok_bt)

        self.setLayout(self.main_lo)

    def set_message(self, message):
        if not isinstance(message, unicode):
            message = message.decode('utf-8')
        self.message_lb.setText(message)

    def set_button_text(self, text):
        if not isinstance(text, unicode):
            text = text.decode('utf-8')
        self.ok_bt.setText(text)

    def _ok_bt_clicked(self):
        # do something you want.
        self.close()  # close the window


client = None


def main():

    global client
    parser = OptionParser()
    parser.add_option('-m', '--message', type=str, action="store", dest="message", help="The alert message")
    parser.add_option('-s', '--sent_by', type=str, action="store", dest="sent_by", help='login of sender')
    (options, args) = parser.parse_args()
    app = QtGui.QApplication(sys.argv)

    sent_by = options.sent_by
    if sent_by is None:
        sent_by = "Someone"
    message = options.message
    if message is None:
        message = "we are not sure why"
    print sent_by, message
    client = TopDialog(' %s wants your attention' % (sent_by))
    client.set_message('%s' % (message))
    client.set_button_text('OK')
    client.show()
    app.exec_()


main()

0 个答案:

没有答案