def start_GUI(self):
     frm = QFrame(self)
     col = QColor(0, 0, 0)
     frm.setStyleSheet("QWidget { background-color: %s }" % col.name())
     frm.setGeometry(0, 0, 800, 800)
     frm.show()
     self.gui_choise_server_client()
Esempio n. 2
0
class Example(QWidget):

    def __init__(self):
        super().__init__()

        self.initUI()


    def initUI(self):

        col = QColor(0, 0, 0)

        self.btn = QPushButton('Dialog', self)
        self.btn.move(20, 20)

        self.btn.clicked.connect(self.showDialog)

        self.frm = QFrame(self)
        self.frm.setStyleSheet("QWidget { background-color: %s }"
            % col.name())
        self.frm.setGeometry(130, 22, 100, 100)

        self.setGeometry(300, 300, 250, 180)
        self.setWindowTitle('Color dialog')
        self.show()


    def showDialog(self):

        col = QColorDialog.getColor()

        if col.isValid():
            self.frm.setStyleSheet("QWidget { background-color: %s }"
                % col.name())
Esempio n. 3
0
class Example(QWidget):
     
    def __init__(self):
        super().__init__()
         
        self.initUI()
         
         
    def initUI(self):     
 
        self.col = QColor(0, 0, 0)      
 
        redb = QPushButton('Red', self)
        redb.setCheckable(True)
        redb.move(10, 10)
 
        redb.clicked[bool].connect(self.setColor)
 
        redb = QPushButton('Green', self)
        redb.setCheckable(True)
        redb.move(10, 60)
 
        redb.clicked[bool].connect(self.setColor)
 
        blueb = QPushButton('Blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)
 
        blueb.clicked[bool].connect(self.setColor)
 
        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" % 
            self.col.name())
         
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Toggle button')
        self.show()
         
         
    def setColor(self, pressed):
         
        source = self.sender()
         
        if pressed:
            val = 255
        else: val = 0
                         
        if source.text() == "Red":
            self.col.setRed(val)               
        elif source.text() == "Green":
            self.col.setGreen(val)            
        else:
            self.col.setBlue(val)
             
        self.square.setStyleSheet("QFrame { background-color: %s }" %
            self.col.name()) 
Esempio n. 4
0
class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.col = QColor(0, 0, 0)

        redb = QPushButton('Red', self)
        redb.setCheckable(True)
        redb.move(10, 10)

        redb.clicked[bool].connect(self.setColor)

        greenb = QPushButton('Green', self)
        greenb.setCheckable(True)
        greenb.move(10, 60)

        greenb.clicked[bool].connect(self.setColor)

        blueb = QPushButton('Blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)

        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Toggle button')
        self.show()

    def setColor(self, pressed):

        source = self.sender()

        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == "Red":
            self.col.setRed(val)
        elif source.text() == "Green":
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)

        self.square.setStyleSheet("QFrame { background-color: %s }" %
                                  self.col.name())
Esempio n. 5
0
class SwitchFrame(QFrame):
    process_signal = pyqtSignal(int)

    def __init__(self, father):
        super().__init__(father)
        self.father = father
        self.abort = False

        self.setGeometry(0, 0, 75, 100)

        self.color_frame = QFrame(self)
        self.color_frame.setObjectName('color_frame')
        self.color_frame.setGeometry(34, 38, 9, 62)

        self.white_label = QLabel('', self.color_frame)
        self.white_label.setObjectName('white_label')
        self.white_label.setGeometry(0, 0, 9, 62)
        self.process_signal.connect(lambda x: self.white_label.move(0, x))

        self.windmill_label = WindMill(self, self.father)

        self.timer = QTimer()
        self.interval = 13
        self.timer.setInterval(self.interval)
        self.timer.start()
        self.timer.timeout.connect(self.rotate)

        self.switch_timer = QTimer()
        self.switch_timer.start(1000)
        self.switch_timer.timeout.connect(self.auto_switch)

        self.step_time = 0

    def rotate(self):
        if self.windmill_label.add == 0:
            return
        elif self.windmill_label.add == 1:
            if self.interval > 3.2:
                self.interval -= 0.1
                self.timer.setInterval(self.interval)
        else:
            if self.interval < 12.8:
                self.interval += 0.1
                self.timer.setInterval(self.interval)
            else:
                self.windmill_label.add = 0
        self.windmill_label.angle = (self.windmill_label.angle - 1) % 360
        self.windmill_label.update()

    def auto_switch(self):
        if self.father.config['switch'] != 0:
            self.step_time += 1
            if self.step_time == self.father.config['switch']:
                self.windmill_label.switch(type_=True)
                self.step_time = 0
Esempio n. 6
0
class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        self.col = QColor(0, 0, 0)
        # 我们创建一个QPushButton并通过其setCheckable()方法来得到一个ToggleButton
        redb = QPushButton('Red', self)
        redb.setCheckable(True)
        redb.move(10, 10)
        # 将clicked信号连接到用户自定义的方法。我们通过clicked信号操作一个布尔值
        redb.clicked[bool].connect(self.setColor)

        greenb = QPushButton('Green', self)
        greenb.setCheckable(True)
        greenb.move(10, 60)

        greenb.clicked[bool].connect(self.setColor)

        blueb = QPushButton('Blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)

        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Toggle button')
        self.show()

    def setColor(self, pressed):

        source = self.sender()

        if pressed:
            val = 255
        else:
            val = 0
        # 我们得到了按下的按钮
        if source.text() == 'Red':
            self.col.setRed(val)
        elif source.text() == 'Green':
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)
        # 如果按下的是red按钮,我们要相应地更新颜色中的红包部分
        self.square.setStyleSheet("QFrame { background-color: %s }" %
                                  self.col.name())
Esempio n. 7
0
class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        # 初始化一个颜色
        self.col = QColor(0, 0, 0)

        redb = QPushButton('Red', self)
        # 把这个按钮设定成切换按钮。
        redb.setCheckable(True)
        redb.move(10, 10)
        # 把点击信号和我们定义好的函数关联起来,这里是把点击事件转换成布尔值。
        redb.clicked[bool].connect(self.setColor)

        grenb = QPushButton('Green', self)
        grenb.setCheckable(True)
        grenb.move(10, 60)
        grenb.clicked[bool].connect(self.setColor)

        blueb = QPushButton('Blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)
        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('QCheckBox')
        self.show()

    def setColor(self, pressed):
        # 可以获取被点击的按钮
        source = self.sender()

        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == "Red":
            self.col.setRed(val)
        elif source.text() == "Green":
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)
        # 可以根据设定,为目标制定颜色
        self.square.setStyleSheet("QFrame {background-color: %s }" %
                                  self.col.name())
Esempio n. 8
0
class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        # 创建了三个ToggleButton与一个QWidget。
        # 我们将QWidget的背景色设为黑色。
        # ToggleButton会切换颜色值中的红色、绿色与蓝色部分。
        # QWidget的背景颜色依赖于按下的按钮。
        self.col = QColor(0, 0, 0)
        # 创建一个QPushButton并通过其setCheckable()方法来得到一个ToggleButton。
        redb = QPushButton('red', self)
        redb.setCheckable(True)
        redb.move(10, 10)
        # 将clicked信号连接到用户自定义的方法。
        # 我们通过clicked信号操作一个布尔值。
        redb.clicked[bool].connect(self.setColor)

        greenb = QPushButton('green', self)
        greenb.setCheckable(True)
        greenb.move(10, 60)

        greenb.clicked[bool].connect(self.setColor)

        blueb = QPushButton('blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)

        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Toggle dialog')
        self.show()

    def setColor(self, pressed):
        source = self.sender()
        if pressed:
            val = 255
        else:
            val = 0
        if source.text() == 'red':
            self.col.setRed(val)
        elif source.text() == 'blue':
            self.col.setBlue(val)
        else:
            self.col.setGreen(val)
        # 更新颜色中的红包部分。
        self.square.setStyleSheet("QFrame { background-color: %s }" %
                                  self.col.name())
    def separadores(self):
        line = QFrame(self)
        line.setGeometry(QRect(165, 20, 20, 350))
        line.setFrameShape(QFrame.VLine)
        line.setFrameShadow(QFrame.Raised)
        #line.setLineWidth(2)

        line2 = QFrame(self)
        line2.setGeometry(QRect(610, 20, 20, 350))
        line2.setFrameShape(QFrame.VLine)
        line2.setFrameShadow(QFrame.Raised)
Esempio n. 10
0
class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):
        # cb = QCheckBox('generate QR code relevant to the result', self)
        #
        # cb.move(20, 20)
        # cb.toggle()
        # cb.stateChanged.connect(self.changeTitle)

        self.col = QColor(0, 0, 0)
        redbnt = QPushButton('Red', self)
        redbnt.setCheckable(True)
        redbnt.move(10, 10)
        redbnt.clicked[bool].connect(self.setColor)

        greenbnt = QPushButton('Green', self)
        greenbnt.setCheckable(True)
        greenbnt.move(10, 60)
        greenbnt.clicked[bool].connect(self.setColor)

        bluebnt = QPushButton('Bule', self)
        bluebnt.setCheckable(True)
        bluebnt.move(10, 110)
        bluebnt.clicked[bool].connect(self.setColor)
        # creat a square zone
        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Toggle button')
        self.show()

    def setColor(self, pressed):
        source = self.sender()

        if pressed:
            val = 255
        else:
            val = 0
        if source.text() == "Red":
            self.col.setRed(val)
        elif source.text() == "Green":
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)

        self.square.setStyleSheet("QFrame { background-color: %s }" %
                                  self.col.name())
Esempio n. 11
0
 def initUI(self):
     self.setWindowTitle("修改资料")
     self.setWindowIcon(QIcon("registerimage.jpg"))
     self.setFixedSize(350, 450)
     self.avator = QLabel("头像:    ", self)
     self.avator.setGeometry(73, 60, 50, 50)
     self.avatorlabel = QLabel(self)
     self.avatorlabel.setGeometry(153, 40, 80, 80)
     self.avatorlabel.setPixmap(
         QPixmap("C:/Users/Hasee/PycharmProjects/image/" +
                 str(random.choice([i for i in range(1, 10)])) + ".jpg"))
     label = [
         "昵称:    ", "姓名:    ", "电话:    ", "旧密码:  ", "新密码:  ", "身份证号:",
         "邮箱地址:", "确认密码:"
     ]
     self.lineedits = [QLineEdit() for i in range(8)]
     for i in range(7):
         self.lineedits[i].setStyleSheet("background-color:white")
     frame = QFrame(self)
     hlayouts = [QHBoxLayout() for i in range(8)]
     labels = [QLabel(label[i]) for i in range(8)]
     for i in range(7):
         hlayouts[i].addWidget(labels[i])
         hlayouts[i].addWidget(self.lineedits[i])
     vlayout = QVBoxLayout(frame)
     vlayout.addStretch(1)
     for i in range(7):
         if i == 3 or i == 4:
             continue
         vlayout.addLayout(hlayouts[i])
     self.passwordframe = QFrame(self)
     self.passwordframe.setGeometry(65, 265, 250, 100)
     self.passwordframe.setVisible(False)
     frame.setGeometry(65, 80, 250, 200)
     hlayouts[-1].addWidget(labels[-1])
     hlayouts[-1].addWidget(self.lineedits[-1])
     self.lineedits[-1].setEchoMode(QLineEdit.Password)
     self.lineedits[-1].textChanged.connect(self.check)
     v = QVBoxLayout(self.passwordframe)
     v.addStretch(1)
     v.addLayout(hlayouts[3])
     v.addLayout(hlayouts[4])
     v.addLayout(hlayouts[-1])
     self.lineedits[3].setEchoMode(QLineEdit.Password)
     self.lineedits[4].setEchoMode(QLineEdit.Password)
     self.button = QPushButton("确认修改", self)
     self.button.clicked.connect(self.changemessage)
     self.button.setGeometry(50, 400, 90, 25)
     self.changeavator = QPushButton("更改", self)
     self.showpasswordframe = QPushButton("修改密码", self)
     self.showpasswordframe.setGeometry(165, 400, 90, 25)
     self.changeavator.setGeometry(240, 60, 50, 30)
     self.showpasswordframe.clicked.connect(self.showpassword)
     self.changeavator.clicked.connect(self.changeavatorfunc)
Esempio n. 12
0
class Pattern(QWidget):
    def __init__(self):
        super(Pattern, self).__init__()
        self.setObjectName('Pattern')
        self.setStyleSheet(GetQssFile.readQss('../resource/qss/pattern.qss'))

        self.log = logging.getLogger('StarCraftII')

        # set widget of layout
        self.frame = QFrame(self)
        self.frame.setGeometry(QDesktopWidget().screenGeometry())
        self.main_layout = QHBoxLayout(self)
        self.human_machine = QRadioButton(strings.HUMAN_VS_MACHINE, self.frame)
        self.machine_machine = QRadioButton(strings.MACHINE_VS_MACHINE,
                                            self.frame)
        self.vs_group = QButtonGroup(self.frame)
        self.main_layout.addWidget(self.human_machine,
                                   alignment=Qt.AlignCenter)
        self.main_layout.addWidget(self.machine_machine,
                                   alignment=Qt.AlignCenter)
        self.main_layout.addStretch(1)
        self.setLayout(self.main_layout)

        # initialization
        self.initUI()

    def initUI(self):
        font = QFont()
        font.setWeight(50)
        font.setPixelSize(15)
        self.human_machine.setFont(font)
        self.machine_machine.setFont(font)
        self.vs_group.addButton(self.human_machine, 1)
        self.vs_group.addButton(self.machine_machine, 2)
        self.vs_group.buttonClicked.connect(self.radioClicked)

    # the slot function of radio group
    def radioClicked(self):
        sender = self.sender()
        if sender == self.vs_group:
            message = ""
            if self.vs_group.checkedId() == 1:
                message = "change pattern: human vs. machine"
                # print(message)
                self.log.info(message)
                globalInformation.set_value('pattern',
                                            strings.HUMAN_VS_MACHINE)
            elif self.vs_group.checkedId() == 2:
                message = "change pattern: machine vs. machine"
                # print(message)
                self.log.info(message)
                globalInformation.set_value('pattern',
                                            strings.MACHINE_VS_MACHINE)
            Signal.get_signal().emit_signal_str(message)
Esempio n. 13
0
class Window(QWidget):
    def __init__(self):
        super().__init__()
        self.initWindow()

    def initWindow(self):
        self.col = QColor(0, 0, 0)

        redb = QPushButton('红色', self)
        # 设置为开关
        redb.setCheckable(True)
        redb.move(10, 10)
        # 连接到方法,通过clicked信号操作一个布尔值
        redb.clicked[bool].connect(self.setColor)

        greenb = QPushButton('绿色', self)
        greenb.setCheckable(True)
        greenb.move(10, 60)

        greenb.clicked[bool].connect(self.setColor)

        blueb = QPushButton('蓝色', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)

        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('开关按钮')
        self.show()

    def setColor(self, pressed):

        source = self.sender()

        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == "红色":
            self.col.setRed(val)
        elif source.text() == "绿色":
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)

        self.square.setStyleSheet("QFrame { background-color: %s }" %
                                  self.col.name())
class RGBSquareExample(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):

        #-------------------------画界面,并给按钮添加事件-------------------------
        self.col = QColor(0, 0, 0)  #默认颜色
        redb = QPushButton('Red', self)  #红色按钮
        redb.setCheckable(True)  #选择设定
        redb.move(10, 10)  #按钮在窗体中的位置,距左上的距离
        redb.clicked[bool].connect(self.setColor)  #点击事件
        greenb = QPushButton('Green', self)
        greenb.setCheckable(True)
        greenb.move(10, 60)
        greenb.clicked[bool].connect(self.setColor)
        blueb = QPushButton('Blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)
        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        #设置方块大小,前两个值是离窗体左上角的位置,后两个值是方块的宽和高
        self.square.setGeometry(150, 30, 200, 100)
        #按照指令更改方块的样式,类似于网页中的css样式
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())
        #窗体大小,前两个值是离屏幕左上角坐标的位置(300, 300)的位置分别为,后两项分别是窗体宽度和高高
        self.setGeometry(300, 300, 400, 200)
        #窗体标题
        self.setWindowTitle('Toggle button')
        #弹出窗体
        self.show()

    #-----------------------------画界面结束------------------------

    #---------------界面事件的执行程序-------------------------------
    def setColor(self, pressed):
        source = self.sender()
        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == "Red":
            self.col.setRed(val)  #255,0,0
        elif source.text() == "Green":
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)
        #按照指令更改方块的样式,类似于网页中的css样式
        self.square.setStyleSheet("QFrame { background-color: %s }" %
                                  self.col.name())
Esempio n. 15
0
class PushButton(QWidget):
    
    def __init__(self):
        super().__init__()        
        self.initUI()
        
    def initUI(self):      

        self.color = QColor(0, 0, 0)       
        
        redButton = QPushButton('红', self)
        redButton.setCheckable(True)
        redButton.move(10, 10)
        redButton.clicked[bool].connect(self.setColor)

        greenButton = QPushButton('绿', self)
        greenButton.setCheckable(True)
        greenButton.move(10, 60)

        greenButton.clicked[bool].connect(self.setColor)

        blueButton = QPushButton('蓝', self)
        blueButton.setCheckable(True)
        blueButton.move(10, 110)

        blueButton.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %  
            self.color.name())
        
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('按钮控件')
        self.show()
        
        
    def setColor(self, pressed):
        
        source = self.sender()
        
        if pressed:
            val = 255
        else: val = 0
                        
        if source.text() == "红":
            self.color.setRed(val)                
        elif source.text() == "绿":
            self.color.setGreen(val)             
        else:
            self.color.setBlue(val) 
            
        self.square.setStyleSheet("QFrame { background-color: %s }" %
            self.color.name())  
Esempio n. 16
0
class Example(QWidget):
    """
    in this example create three toggle buttons and a QWidget, we set the background color of the QWidget to black
    the toggle button will toggle the red green and blue parts of the colour type, the background colour depends on
    which toggle buttons is pressed
    """
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        # create the black background color
        self.cor = QColor(0,0,0)
        # to create a toggle button, we create a QPushButton and make it checkable by calling the setCheckable method
        redb = QPushButton('Red', self)
        redb.setCheckable(True)
        redb.move(10,60)
        # connect a clicked signal to our user defined method, we use the clicked signal that operates with a boolean value
        redb.clicked[bool].connect(self.setColor)

        greenb = QPushButton('Green', self)
        greenb.setCheckable(True)
        greenb.move(10,110)
        greenb.clicked[bool].connect(self.setColor)

        blueb = QPushButton('Blue', self)
        blueb.setCheckable(True)
        blueb.move(10,160)
        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet('QWidget {background-color:%s}' % self.cor.name())

        self.setGeometry(300, 300, 300,300)
        self.setWindowTitle('check box')

    def setColor(self, pressed):
        sender = self.sender()

        if pressed:
            val = 255
        else:
            val = 0

        if sender.text() == "Red":
            self.cor.setRed(val)
        elif sender.text() == "Green":
            self.cor.setGreen(val)
        else:
            self.cor.setBlue(val)

        # use style sheets to change the background color the stylesheet is update with setStyleSheet() method
        self.square.setStyleSheet("QFrame {background-color:%s}" % self.cor.name())
Esempio n. 17
0
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.col = QColor(0, 0, 0)
        # print(self.col.name())
        redbtn = QPushButton('Red', self)
        redbtn.setCheckable(True)
        redbtn.move(10, 10)
        # bool 值为作为参数传入 setcolor 函数
        redbtn.clicked[bool].connect(self.setcolor)

        greenbtn = QPushButton('Green', self)
        greenbtn.setCheckable(True)
        greenbtn.move(10, 60)
        greenbtn.clicked[bool].connect(self.setcolor)

        bluebtn = QPushButton('Blue', self)
        bluebtn.setCheckable(True)
        bluebtn.move(10, 110)
        bluebtn.clicked[bool].connect(self.setcolor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet('QWidget {background-color:%s}' %
                                  self.col.name())
        # self.square = QFrame(self)
        # self.square.setGeometry(150, 20, 100, 100)
        # self.square.setStyleSheet("QWidget { background-color: %s }" %
        #     self.col.name())

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('toggle_down')
        self.show()

    def setcolor(self, pressed):
        source = self.sender()
        print(pressed)
        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == 'Red':
            self.col.setRed(val)
        elif source.text() == 'Green':
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)
        self.square.setStyleSheet("QFrame { background-color:%s }" %
                                  self.col.name())
Esempio n. 18
0
class Ui_Dialog9(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(640, 555)
        palette1 = QtGui.QPalette()
        palette1.setColor(QtGui.QPalette.Background,
                          QtGui.QColor(192, 253, 123))  # 设置背景颜色
        palette1.setBrush(QtGui.QPalette.Background,
                          QtGui.QBrush(
                              QtGui.QPixmap("./background/2.jpg").scaled(
                                  Dialog.size())))  # 设置背景图片
        Dialog.setPalette(palette1)
        self.comboBox = QtWidgets.QComboBox(Dialog)
        self.comboBox.setGeometry(QtCore.QRect(10, 20, 81, 22))
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.pushButton = QtWidgets.QPushButton(Dialog)
        self.pushButton.setGeometry(QtCore.QRect(480, 20, 93, 28))
        # self.textEdit = QtWidgets.QTextEdit(Dialog)
        # self.textEdit.setGeometry(QtCore.QRect(10, 60, 621, 481))
        # self.textEdit.setObjectName("textEdit")
        self.comboBox_2 = QtWidgets.QComboBox(Dialog)
        self.comboBox_2.setGeometry(QtCore.QRect(130, 20, 91, 22))
        self.comboBox_2.setObjectName("comboBox_2")
        self.comboBox_2.addItem("")
        self.comboBox_2.addItem("")
        self.tableWidget = QtWidgets.QTableWidget(Dialog)
        self.tableWidget.setRowCount(30)
        self.tableWidget.setColumnCount(5)
        self.tableWidget.setGeometry(QtCore.QRect(10, 60, 621, 481))
        self.tableWidget.setHorizontalHeaderLabels(
            ["索书号", "书名", "作者", "借阅时间", "归还日期"])
        self.tableWidget.setObjectName("tableWidget")
        self.frame = QFrame(self)
        self.frame.setGeometry(QtCore.QRect(10, 60, 621, 481))
        self.frame.setVisible(False)
        self.hboxLayout = QHBoxLayout(self.frame)
        self.myHtml = QWebEngineView()
        self.myHtml.load(QUrl("file:///D:/编程文件/数据库课设/pie.html"))
        self.hboxLayout.addWidget(self.myHtml)

        self.retranslateUi(Dialog)
        QtCore.QMetaObject.connectSlotsByName(Dialog)

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "借阅历史"))
        self.comboBox.setItemText(0, _translate("Dialog", "借阅历史"))
        self.comboBox.setItemText(1, _translate("Dialog", "可视化分析"))
        self.comboBox_2.setItemText(0, _translate("Dialog", "类别可视化"))
        self.comboBox_2.setItemText(1, _translate("Dialog", "日期可视化"))
        self.pushButton.setText(_translate("Dialog", "返回"))
Esempio n. 19
0
class Example(QWidget):
    def __init__(self):
        super().__init__()

        self.initUI()

    def initUI(self):

        # 初始化一个颜色
        self.col = QColor(0, 0, 0)
        self.vbox = QVBoxLayout()

        # 创建一个水平的QSlider。
        sldb = QSlider(Qt.Horizontal, self)
        sldb.setFocusPolicy(Qt.NoFocus)
        sldb.valueChanged[int].connect(self.changeValueb)
        self.vbox.addWidget(sldb)

        sldg = QSlider(Qt.Horizontal, self)
        sldg.setFocusPolicy(Qt.NoFocus)
        sldg.valueChanged[int].connect(self.changeValueg)
        self.vbox.addWidget(sldg)

        sldr = QSlider(Qt.Horizontal, self)
        sldr.setFocusPolicy(Qt.NoFocus)
        sldr.valueChanged[int].connect(self.changeValuer)
        self.vbox.addWidget(sldr)

        self.setLayout(self.vbox)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('滑块测试')
        self.show()

    def changeValueb(self, value):
        self.col.setBlue(value)
        self.square.setStyleSheet("QFrame {background-color: %s }" %
                                  self.col.name())

    def changeValueg(self, value):
        self.col.setGreen(value)
        self.square.setStyleSheet("QFrame {background-color: %s }" %
                                  self.col.name())

    def changeValuer(self, value):
        self.col.setRed(value)
        self.square.setStyleSheet("QFrame {background-color: %s }" %
                                  self.col.name())
Esempio n. 20
0
class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):

        self.col = QColor(0, 0, 0)

        # RED
        redb = QPushButton('red', self)
        redb.setCheckable(True)
        redb.move(10, 10)
        redb.clicked.connect(self.setColor)

        # Green
        greenb = QPushButton('green', self)
        greenb.setCheckable(True)
        greenb.move(10, 60)
        greenb.clicked.connect(self.setColor)

        # Blue
        blueb = QPushButton('blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)
        blueb.clicked.connect(self.setColor)

        # Squre 상자 생성 QFrame 이용
        self.squre = QFrame(self)
        self.squre.setGeometry(150, 20, 100, 100)
        self.squre.setStyleSheet("QWidget {background-color: %s }" %
                                 self.col.name())

        # 기본 화면 구성 설정
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('QCheckBox')
        self.show()

    def setColor(self, pressed):  # state 값을 받아온다
        print("tt")
        source = self.sender()
        if pressed:
            val = 255
        else:
            val = 0
        if source.text() == "red":
            self.col.setRed(val)
        elif source.text() == "green":
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)
        self.squre.setStyleSheet("QFrame {background-color: %s}" %
                                 self.col.name())
Esempio n. 21
0
class MyApp(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.col = QColor(0, 0, 0)

        red_btn = QPushButton("Red", self)
        red_btn.setCheckable(True)
        red_btn.move(10, 10)

        red_btn.clicked.connect(self.setColor)

        blue_btn = QPushButton("Blue", self)
        blue_btn.setCheckable(True)
        blue_btn.move(10, 60)

        blue_btn.clicked.connect(self.setColor)

        green_btn = QPushButton("Green", self)
        green_btn.setCheckable(True)
        green_btn.move(10, 110)

        green_btn.clicked.connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        self.setWindowTitle("Toggle Button")
        self.setGeometry(300, 300, 400, 300)
        self.show()

    def setColor(self, pressed):
        source = self.sender()

        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == "Red":
            self.col.setRed(val)
        elif source.text() == "Blue":
            self.col.setBlue(val)
        else:
            self.col.setGreen(val)

        self.square.setStyleSheet("QFrame { background-color: %s }" %
                                  self.col.name())
Esempio n. 22
0
class Question_Window(QMainWindow):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.f_r = open("info", mode='r')
        self.frm = QFrame(self)
        self.frm.setStyleSheet("QWidget { background-color: %s }" %
                               self.f_r.read(7))
        self.frm.setGeometry(0, 0, 2000, 1000)

        self.setGeometry(550, 300, 275, 100)
        self.setWindowTitle('Подтверждение действия')

        self.label = QLabel(self)
        self.label.resize(215, 15)
        self.label.setText("Вы уверены, что хотите выйти?")
        self.label.move(30, 15)
        self.f_r.seek(14)
        self.label.setStyleSheet("QLabel {color: %s;}" % self.f_r.read(7))

        self.yes_btn = QPushButton('ДА', self)
        self.yes_btn.resize(90, 30)
        self.yes_btn.move(20, 50)
        self.f_r.seek(7)
        self.yes_btn.setStyleSheet(
            "QPushButton { background-color: %s; border: %s; color: %s}" %
            (self.f_r.read(7), None, self.f_r.read(7)))

        self.no_btn = QPushButton('НЕТ', self)
        self.no_btn.resize(90, 30)
        self.no_btn.move(170, 50)
        self.f_r.seek(7)
        self.no_btn.setStyleSheet(
            "QPushButton { background-color: %s; border: %s; color: %s}" %
            (self.f_r.read(7), None, self.f_r.read(7)))
        self.f_r.close()

        self.yes_btn.clicked.connect(self.exit)
        self.no_btn.clicked.connect(self.not_exit)

    def exit(self):
        self.enter_form = Enter_Window()
        self.enter_form.show()
        self.close()

    def not_exit(self):
        self.main_menu = MainMenu()
        self.main_menu.show()
        self.close()
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.color = QColor(0, 0, 0)
        redBtn = QPushButton('Red', self)
        redBtn.setCheckable(True)
        redBtn.move(10, 10)
        redBtn.clicked[bool].connect(self.setColor)

        greenBtn = QPushButton('Green', self)
        greenBtn.setCheckable(True)
        greenBtn.move(10, 60)
        greenBtn.clicked[bool].connect(self.setColor)

        blueBtn = QPushButton('Blue', self)
        blueBtn.setCheckable(True)
        blueBtn.move(10, 110)
        blueBtn.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget {background-color:%s}" %
                                  self.color.name())

        # position
        self.setGeometry(300, 300, 350, 150)
        # window title
        self.setWindowTitle("Font Dialog")
        # show window
        self.show()

    def setColor(self, pressed):
        sender = self.sender()
        if pressed:
            val = 255
        else:
            val = 0

        senderText = sender.text()
        if senderText == "Red":
            self.color.setRed(val)
        elif senderText == "Green":
            self.color.setGreen(val)
        elif senderText == "Blue":
            self.color.setBlue(val)

        self.square.setStyleSheet("QWidget {background-color:%s}" %
                                  self.color.name())
Esempio n. 24
0
    def Scan(self):
        SFrame = QFrame(self)
        SFrame.setFrameShape(QFrame.StyledPanel)
        SFrame.setStyleSheet("background-color:pink")
        SFrame.setGeometry(400, 100, 1500, 1000)

        labelImage = QLabel(SFrame)
        # labelImage.setGeometry(0,400, 1000, 900)
        labelImage.move(0,650)
        pixmap = QPixmap("Image/icon.jpg")
        labelImage.setStyleSheet("background-color : black;color:green")
        labelImage.setPixmap(pixmap)

        labelImage1 = QLabel(SFrame)
        # labelImage.setGeometry(0,400, 1000, 900)
        labelImage1.move(750,650)
        pixmap1 = QPixmap("Image/icon1.jpg")
        labelImage1.setStyleSheet("background-color : black;color:green")
        labelImage1.setPixmap(pixmap1)

        btnSelect = QPushButton(SFrame)
        btnSelect.setText("Select")
        btnSelect.setGeometry(0, 500, 400, 100)

        btnSelect.setStyleSheet("QPushButton"
                              "{"
                              "background-color :Blue;color: white;border: 1px solid white"
                              "}"
                              "QPushButton::pressed"
                              "{"
                              "background-color :pink;"
                              "}")
        btnSelect.clicked.connect(self.Select)

        btn = QPushButton(SFrame)
        btn.setText("Scan")
        btn.setGeometry(1000, 500, 400, 100)

        btn.setStyleSheet("QPushButton"
                                "{"
                                "background-color :Blue;color: white;border: 1px solid white"
                                "}"
                                "QPushButton::pressed"
                                "{"
                                "background-color :pink;"
                                "}")
        btn.clicked.connect(lambda: webbrowser.open('http://www.google.com'))



        SFrame.show()
Esempio n. 25
0
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # define default color
        self.col = QColor(0, 0, 0)

        # define red button
        redbtn = QPushButton('Red', self)
        redbtn.setCheckable(True)
        redbtn.move(10, 10)
        redbtn.clicked[bool].connect(self.setColor)

        # define green button
        greenbtn = QPushButton('Green', self)
        greenbtn.setCheckable(True)
        greenbtn.move(10, 60)
        greenbtn.clicked[bool].connect(self.setColor)

        # define blue button
        bluebtn = QPushButton('Blue', self)
        bluebtn.setCheckable(True)
        bluebtn.move(10, 110)
        bluebtn.clicked[bool].connect(self.setColor)

        # define frame with color of clicked button
        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget {background-color: %s}" %
                                  self.col.name())

        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Window')
        self.show()

    def setColor(self, pressed):
        source = self.sender()
        if pressed:
            val = 255
        else:
            val = 0
        if source.text() == 'Red':
            self.col.setRed(val)
        elif source.text() == 'Green':
            self.col.setGreen(val)
        elif source.text() == 'Blue':
            self.col.setBlue(val)
        self.square.setStyleSheet("QWidget {background-color: %s}" %
                                  self.col.name())
Esempio n. 26
0
class Qmix(QWidget):
    def __init__(self):
        super(Qmix, self).__init__()
        self.setObjectName('Qmix')
        self.setStyleSheet(GetQssFile.readQss('../resource/qss/tabItem.qss'))

        # set widget of layout
        self.frame = QFrame(self)
        self.frame.setGeometry(QDesktopWidget().screenGeometry())
        self.main_layout = QHBoxLayout(self)
        self.setLayout(self.main_layout)

        self.label = QLabel('qmix description')
        self.main_layout.addWidget(self.label, alignment=Qt.AlignCenter)
Esempio n. 27
0
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):

        col = QColor(10, 10, 100)
        self.btn1 = QPushButton('Color Dialog', self)
        self.btn1.move(20, 20)
        self.btn1.clicked.connect(self.showColorDialog)
        self.frm = QFrame(self)
        self.frm.setStyleSheet('QWidget {background-color: %s }' % col.name())
        self.frm.setGeometry(130, 20, 100, 20)

        self.btn = QPushButton('input Dialog', self)
        self.btn.move(20, 50)
        self.btn.clicked.connect(self.showInputDialog)
        self.le = QLineEdit(self)
        self.le.move(130, 50)

        # vbox = QVBoxLayout()
        btn3 = QPushButton('Font Dialog', self)
        # btn3.setSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
        btn3.move(20, 80)
        # vbox.addWidget(btn3)
        btn3.clicked.connect(self.showFontDialog)
        self.lbl = QLabel('Knowledge only matters', self)
        self.lbl.move(110, 80)
        # vbox.addWidget(self.lbl)
        # self.setLayout(vbox)

        self.setGeometry(300, 300, 290, 150)
        self.setWindowTitle(' Dialog')
        self.show()

    def showInputDialog(self):
        text, ok = QInputDialog.getText(self, 'Input Dialog', 'Enter your name:')
        if ok:
            self.le.setText(text)

    def showColorDialog(self):
        col = QColorDialog.getColor()
        if col.isValid():
            self.frm.setStyleSheet('QWidget{ background-color: %s }' % col.name())

    def showFontDialog(self):
        font, ok = QFontDialog.getFont()
        if ok:
            self.lbl.setFont(font)
Esempio n. 28
0
    def initWidget(self, ips):
        self.statusInfo = {}
        self.isStartWatch = False
        self.currentIP = None
        self.isMQConnected = False
        self.mMQClient = mqtt.Client(client_id='dtu-online-check-tool-tanxing-debug')
        self.timer = QTimer()
        vbox = QVBoxLayout()
        self.remind = QLabel("提示:从文件中导入DTU地址!")
        self.isImportData = False
        vbox.addWidget(self.remind)
        self.scrollArea = QScrollArea()
        self.scrollArea.setWidgetResizable(True)
        self.scrollAreaWidgetContents = QWidget()
        self.scrollAreaWidgetContents.setGeometry(QRect(0, 0, 388, 313))
        h1box = QHBoxLayout()
        line = QFrame()
        line.setFrameShape(QFrame.HLine)
        line.setGeometry(QRect(40, 180, 400, 3))
        addrLabel = QLabel("设备地址")
        h1box.addWidget(addrLabel)
        addrLabel.setAlignment(Qt.AlignCenter)
        onLineLabel = QLabel("在线状态   ")
        h1box.addWidget(onLineLabel)
        onLineLabel.setAlignment(Qt.AlignCenter)
        if isShowTime:
            timeLabel = QLabel("时间")
            timeLabel.setAlignment(Qt.AlignCenter)
            h1box.addWidget(timeLabel)
        h1box.setGeometry(QRect(0, 0, 100, 313))
        vbox.addLayout(h1box)

        self.svbox = QVBoxLayout(self.scrollAreaWidgetContents)
        self.scrollArea.setWidget(self.scrollAreaWidgetContents)
        vbox.addWidget(self.scrollArea)
        bootmbox = QHBoxLayout()
        bootmbox.addWidget(QLabel("离线间隔"))
        self.comBox = QComboBox()
        bootmbox.addWidget(self.comBox)
        self.comBox.addItems(timeSpanList)
        bootmbox.addWidget(QLabel("分"))
        bootombox = QHBoxLayout()
        bootombox.addLayout(bootmbox)
        bootombox.addWidget(QLabel(""))
        self.checkBtn = QPushButton("开始监测")
        bootombox.addWidget(self.checkBtn)
        vbox.addLayout(bootombox)
        self.setLayout(vbox)
        self.checkBtn.clicked.connect(self.watch)
        self.timer.timeout.connect(self.refresh)
Esempio n. 29
0
class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        self.color = QColor(0, 0, 0)

        btn_red = QPushButton("red", self)
        btn_red.move(20, 30)
        btn_red.setCheckable(True)
        btn_red.clicked[bool].connect(self.changeColor)

        btn_green = QPushButton("green", self)
        btn_green.move(20, 90)
        btn_green.setCheckable(True)
        btn_green.clicked[bool].connect(self.changeColor)

        btn_blue = QPushButton("blue", self)
        btn_blue.move(20, 140)
        btn_blue.setCheckable(True)
        btn_blue.clicked[bool].connect(self.changeColor)

        self.fr = QFrame(self)
        self.fr.setGeometry(200, 30, 100, 100)
        self.fr.setStyleSheet("QWidget { background-color: %s}" %
                              self.color.name())

        self.setGeometry(300, 300, 300, 300)
        self.setWindowTitle("button preseed")
        self.show()

    def changeColor(self, pressed):
        val = 255
        sender = self.sender()
        if pressed:
            val = 255
        else:
            val = 0

        if sender.text() == "red":
            self.color.setRed(val)
        elif sender.text() == "green":
            self.color.setGreen(val)
        elif sender.text() == "blue":
            self.color.setBlue(val)

        self.fr.setStyleSheet("QFrame {background-color:%s}" %
                              self.color.name())
Esempio n. 30
0
class Example(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):

        col = QColor(0, 0, 0)

        self.btn = QPushButton('Dialog', self)
        self.btn.move(20, 20)
        self.btn.clicked.connect(self.showDialog)

        self.frm = QFrame(self)
        self.frm.setStyleSheet('QWidget {background-color:%s}' % col.name())
        self.frm.setGeometry(130, 22, 100, 100)

        self.resize(300, 220)
        self.center()  #设置居中

        self.setWindowTitle('Color Dialog')
        self.setWindowIcon(QIcon('F:/Py_learn/PyQt_learn/bone.jpg'))

        self.show()

    def showDialog(self):

        col = QColorDialog.getColor()
        if col.isValid():
            self.frm.setStyleSheet('QWidget {background-color:%s}' %
                                   col.name())

    def center(self):  #居中函数

        qr = self.frameGeometry()
        cp = QDesktopWidget().availableGeometry().center()
        qr.moveCenter(cp)
        self.move(qr.topLeft())

    def closeEvent(self, event):

        reply = QMessageBox.question(self, 'Message', 'Are you sure to quit?',
                                     QMessageBox.Yes | QMessageBox.No,
                                     QMessageBox.No)

        if reply == QMessageBox.Yes:
            event.accept()
        else:
            event.ignore()
Esempio n. 31
0
 def __init_sigma_slider__(self, toolbar):
     sigma_slider = AnimatedSlider('𝞼', (0, 10), self.sigma, decimals=2)
     sigma_slider.setMaximumWidth(self._MaximumSliderWidth)
     sigma_slider.setMaximumHeight(self._MaximumSliderHeight)
     sigma_slider.valueChanged.connect(self.update_sigma)
     sigma_slider.setStyleSheet('background-color: white;')
     sigma_slider.shadow.setColor(QColor('blue'))
     self.sigma_slider = sigma_slider
     frame = QFrame()
     layout = QHBoxLayout()
     frame.setLayout(layout)
     frame.setGeometry(0, 0, self._MaximumSliderWidth,
                       toolbar.height() * 0.9)
     layout.addWidget(sigma_slider, alignment=Qt.AlignHCenter)
     toolbar.addWidget(frame)
Esempio n. 32
0
    def _init_sigma_slider(self, toolbar):
        sigma_slider = LabeledSlider('𝞼', (0, 10),
                                     self.profile.sigma,
                                     decimals=2)

        sigma_slider.valueChanged.connect(self.update_sigma)

        self.sigma_slider = sigma_slider
        frame = QFrame()
        layout = QHBoxLayout()
        frame.setLayout(layout)
        frame.setGeometry(0, 0, self._MaximumSliderWidth,
                          toolbar.height() * 0.9)
        layout.addWidget(sigma_slider, alignment=Qt.AlignLeft)
        toolbar.addWidget(frame)
Esempio n. 33
0
class MainWindow(QWidget):
    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        self.col = QColor(0, 0, 0)

        redBtn = QPushButton('Red', self)
        redBtn.setCheckable(True)
        redBtn.move(10, 10)
        redBtn.clicked[bool].connect(self.setColor)     # 把clicked信号连接到setColor方法上

        greenBtn = QPushButton('Green', self)
        greenBtn.setCheckable(True)
        greenBtn.move(10, 60)
        greenBtn.clicked[bool].connect(self.setColor)

        blueBtn = QPushButton('Blue', self)
        blueBtn.setCheckable(True)
        blueBtn.move(10, 110)
        blueBtn.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet('QFrame {background-color: %s}' % self.col.name())

        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('ToggleButton')
        self.show()

    def setColor(self, pressed):
        # 获取信号发送器,用于判断是哪个按钮发送的信号
        source = self.sender()

        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == 'Red':
            self.col.setRed(val)
        elif source.text() == 'Green':
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)

        self.square.setStyleSheet('QFrame {background-color: %s}' % self.col.name())
Esempio n. 34
0
class PopupMenu(QMainWindow):
    def __init__(self, title):
        super().__init__()

        self.setWindowTitle(title)
        self.setWindowFlags(Qt.Popup | Qt.FramelessWindowHint)
        self.setAttribute(Qt.WA_TranslucentBackground, True)

        self.frame = QFrame(self)
        self.frame.setGeometry(0, 0, self.width(), self.height())
        self.frame.setStyleSheet(
            'border:4px solid #333333;border-radius:30px;background:black;')
        self.frame.show()

    def resizeEvent(self, event):
        self.frame.setGeometry(0, 0, self.width(), self.height())
Esempio n. 35
0
class statusWidget(QWidget):
    def __init__(self):
        super(statusWidget,self).__init__()
        self.initUI()

    def initUI(self):
        self.green = QColor(0, 128, 0)
        self.red = QColor(128,0,0)
        self.setMinimumSize(100,200)
        lbl1 = QLabel('Pump',self)
        lbl1.move(10,0)
        lbl2 = QLabel('Valve', self)
        lbl2.move(10, 85)
        lbl3 = QLabel('Status 3', self)
        lbl3.move(10, 170)

        self.square1 = QFrame(self)
        self.square1.setGeometry(10,20,60,60)
        self.square1.setStyleSheet("QWidget { background-color: %s }" %
                                  self.green.name())
        self.square2 = QFrame(self)
        self.square2.setGeometry(10,105,60,60)
        self.square2.setStyleSheet("QWidget { background-color: %s }" %
                                   self.red.name())
        self.square3 = QFrame(self)
        self.square3.setGeometry(10,190,60,60)
        self.square3.setStyleSheet("QWidget { background-color: %s }" %
                                   self.red.name())
Esempio n. 36
0
class MainWindow_Ui(QMainWindow):
    def __init__(self):
        super().__init__()
#MainWindow
        self.resize(600, 400)
        self.setMinimumSize(QSize(600, 400))
        self.setMaximumSize(QSize(16777215, 16777215))
        self.setWindowTitle("Persepolis Download Manager")
        self.setWindowIcon(QIcon('icon'))
        
        self.centralwidget = QWidget(self)
        self.verticalLayout = QVBoxLayout(self.centralwidget)
#enable drag and drop 
        self.setAcceptDrops(True)
#frame
        self.frame = QFrame(self.centralwidget)
        self.frame.setGeometry(QRect(10, 10, 581, 251))
        self.frame.setFrameShape(QFrame.StyledPanel)
        self.frame.setFrameShadow(QFrame.Raised)
        self.gridLayout = QGridLayout(self.frame)
 

#tablewidget
        self.download_table = QTableWidget(self.frame)
        self.download_table.setGeometry(QRect(10, 10, 560, 231))
        self.download_table.setSizeIncrement(QSize(0, 0))
        self.download_table.setColumnCount(10)
        self.download_table.setSelectionBehavior(QAbstractItemView.SelectRows)
        self.download_table.setEditTriggers(QAbstractItemView.NoEditTriggers)
        self.download_table.verticalHeader().hide()
        self.download_table.setColumnHidden(8 , True)
        self.download_table.setColumnHidden(9 , True)

        self.gridLayout.addWidget(self.download_table, 0, 0, 1, 1)
        self.verticalLayout.addWidget(self.frame)
 
        self.setCentralWidget(self.centralwidget)

        download_table_header = ['File Name' , 'Status' , 'Size' , 'Downloaded' , 'Percentage' , 'Connections' , 'Transfer rate' , 'Estimate time left' , 'Gid' , 'Info']
        self.download_table.setHorizontalHeaderLabels(download_table_header)    
#fixing the size of download_table when window is Maximized!
        self.download_table.horizontalHeader().setSectionResizeMode(0)
        self.download_table.horizontalHeader().setStretchLastSection(True)
#finding number od row that user selected!
        self.download_table.itemSelectionChanged.connect(self.selectedRow)
   



#menubar
        self.menubar = QMenuBar(self)
        self.menubar.setGeometry(QRect(0, 0, 600, 24))
        self.setMenuBar(self.menubar)
        fileMenu = self.menubar.addMenu('File')
        editMenu = self.menubar.addMenu('Edit')
        viewMenu = self.menubar.addMenu('View')
        downloadMenu = self.menubar.addMenu('Download')
        helpMenu = self.menubar.addMenu('Help')


#statusbar
        self.statusbar = QStatusBar(self)
        self.setStatusBar(self.statusbar)
        self.statusbar.showMessage("Persepolis Download Manager")
#toolBar
        self.toolBar = QToolBar(self)
        self.addToolBar(QtCore.Qt.TopToolBarArea, self.toolBar)
        self.toolBar.setWindowTitle("toolBar")
        self.toolBar.setIconSize(QSize(38 , 38))
        self.toolBar.setFloatable(False)
        self.toolBar.setMovable(False)

#toolBar and menubar and actions
        self.stopAllAction = QAction(QIcon(icons + 'stop_all') , 'Stop all active downloads' , self , statusTip = 'Stop all active downloads', triggered = self.stopAllDownloads )
        downloadMenu.addAction(self.stopAllAction)

        self.pauseAllAction = QAction(QIcon(icons + 'pause_all') , 'Pause all active downloads' , self , statusTip = 'Pause all active downloads', triggered = self.pauseAllDownloads )
        downloadMenu.addAction(self.pauseAllAction)


        self.minimizeAction = QAction(QIcon(icons + 'minimize') , 'Minimize to system tray' , self , shortcut = "Ctrl+W" , statusTip = "Minimize to system tray" , triggered = self.minMaxTray) 
        viewMenu.addAction(self.minimizeAction)

    

        self.addlinkAction = QAction(QIcon(icons + 'add') , 'Add New Download Link' , self , shortcut = "Ctrl+N" , statusTip = "Add New Download Link" , triggered = self.addLinkButtonPressed) 
        fileMenu.addAction(self.addlinkAction)


        self.resumeAction = QAction(QIcon(icons + 'play') , 'Resume Download' , self , shortcut = "Ctrl+R" , statusTip = "Resume Download" , triggered = self.resumeButtonPressed)
        downloadMenu.addAction(self.resumeAction)


        self.pauseAction = QAction(QIcon(icons + 'pause') , 'Pause Download' , self , shortcut = "Ctrl+C" , statusTip = "Pause Download" , triggered = self.pauseButtonPressed)
        downloadMenu.addAction(self.pauseAction)

       

        self.stopAction = QAction(QIcon(icons + 'stop') , 'Stop Download' , self , shortcut = "Ctrl+S" , statusTip = "Stop/Cancel Download" , triggered = self.stopButtonPressed)
        downloadMenu.addAction(self.stopAction)

        self.removeAction = QAction(QIcon(icons + 'trash') , 'Remove Download' , self , shortcut = "Ctrl+D" , statusTip = "Remove Download" , triggered = self.removeButtonPressed)
        downloadMenu.addAction(self.removeAction)

        self.propertiesAction = QAction(QIcon(icons + 'setting') , 'Properties' , self , shortcut = "Ctrl+P" , statusTip = "Properties" , triggered = self.propertiesButtonPressed )
        downloadMenu.addAction(self.propertiesAction)

        self.progressAction = QAction(QIcon(icons + 'window') , 'Progress' , self , shortcut = "Ctrl+Z" , statusTip = "Progress" , triggered = self.progressButtonPressed )
        downloadMenu.addAction(self.progressAction)


        self.exitAction = QAction(QIcon(icons + 'exit') , 'Exit' , self , shortcut = "Ctrl+Q" , statusTip = "Exit" , triggered = self.close)
        fileMenu.addAction(self.exitAction)

        self.preferencesAction = QAction(QIcon(icons + 'preferences') , 'Preferences' , self , statusTip = 'Preferences' , triggered = self.openPreferences)
        editMenu.addAction(self.preferencesAction)

        self.aboutAction = QAction(QIcon(icons + 'about') , 'About' , self , statusTip = 'About' , triggered = self.openAbout)
        helpMenu.addAction(self.aboutAction)

        


        for i in self.addlinkAction,self.resumeAction, self.pauseAction , self.stopAction, self.removeAction , self.propertiesAction, self.progressAction , self.exitAction :
            self.toolBar.addAction(i)
         

        self.toolBar.insertSeparator(self.addlinkAction)
        self.toolBar.insertSeparator(self.resumeAction)     
        self.toolBar.insertSeparator(self.removeAction)
        self.toolBar.insertSeparator(self.exitAction)
        self.toolBar.addSeparator()
Esempio n. 37
0
class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()


    def initUI(self):

        # checkbox
        cb = QCheckBox('show title', self)
        cb.move(20, 20)
        cb.toggle()
        cb.stateChanged.connect(self.changeTitle)

        # toggle button
        self.col = QColor(0, 0, 0)

        redb = QPushButton('red', self)
        redb.setCheckable(True)
        redb.move(20, 40)
        redb.clicked[bool].connect(self.setColor)

        greenb = QPushButton('green', self)
        greenb.setCheckable(True)
        greenb.move(20, 60)
        greenb.clicked[bool].connect(self.setColor)

        blueb = QPushButton('blue', self)
        blueb.setCheckable(True)
        blueb.move(20, 80)
        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet('QWidget {background-color: %s}' %
            self.col.name())

        # slider
        sld = QSlider(Qt.Horizontal, self)
        sld.setFocusPolicy(Qt.NoFocus)
        sld.setGeometry(20, 160, 100, 20)
        sld.valueChanged[int].connect(self.changeValue)

        self.label = QLabel('0', self)
        self.label.setGeometry(140, 155, 80, 30)

        # progressbar
        self.pbar = QProgressBar(self)
        self.pbar.setGeometry(20, 200, 200, 25)

        self.btn = QPushButton('start', self)
        self.btn.move(20, 230)
        self.btn.clicked.connect(self.doAction)

        self.timer = QBasicTimer()
        self.step = 0

        # calendar
        cal = QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(20, 300)
        cal.clicked[QDate].connect(self.showDate)

        self.lbl = QLabel(self)
        date = cal.selectedDate()
        self.lbl.setText(date.toString())
        self.lbl.move(20, 280)

        self.setGeometry(300, 300, 400, 550)
        self.setWindowTitle('widgets')
        self.show()

    def showDate(self, date):
        self.lbl.setText(date.toString())

    def timerEvent(self, e):

        if self.step >= 100:
            self.timer.stop()
            self.btn.setText('finished')
            return

        self.step = self.step + 1
        self.pbar.setValue(self.step)

    def doAction(self):
        if self.timer.isActive():
            self.timer.stop()
        else:
            self.timer.start(100, self)
            self.btn.setText('stop')

    def changeValue(self, value):
        self.label.setText(str(value))

    def setColor(self, pressed):
        source = self.sender()

        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == 'red':
            self.col.setRed(val)
        elif source.text() == 'green':
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)

        self.square.setStyleSheet('QFrame {background-color: %s}' %
            self.col.name())


    def changeTitle(self, state):
        if state == Qt.Checked:
            self.setWindowTitle('widgets')
        else:
            self.setWindowTitle('')
Esempio n. 38
0
class MapView(QFrame):
    
    def __init__(self, parent):
        super(MapView, self).__init__(parent)
        self.parent = parent
        self.initUI(self.parent.gameboard)
        self.mouse_x = 0
        self.mouse_y = 0
        self.clickedTower = None
    
        
    def initUI(self, gameboard): 

        self.setFixedSize((gameboard.width - 1)*blockSize, gameboard.height*blockSize)
        self.setMouseTracking(True)
        self.show()
    
    
    def paintEvent(self, event):

        qp = QPainter()
        qp.begin(self)
        self.drawMap(qp)
        
        if self.underMouse() and self.parent.isTowerSelected:
            # Draws the tower outline and range of the tower being build
            self.drawTowerRange(self.mouse_x, self.mouse_y, self.parent.selectedTower.range, qp)
            self.drawTowerOutline(self.mouse_x, self.mouse_y, qp)
        
        if not self.parent.isTowerSelected and self.parent.isTowerHovered:
            # Draws tower range when a tower is being hovered
            self.drawTowerRange(self.parent.towerBeingHovered.posX, self.parent.towerBeingHovered.posY, self.parent.towerBeingHovered.range, qp)    
        
        self.drawPorjectiles(qp)
        
        qp.end()
        
        
    def drawMap(self, qp):
        
        self.drawMapBlocks(qp, self.parent.gameboard.river, riverColor)
        self.drawMapBlocks(qp, self.parent.gameboard.road, roadColor)
        self.drawMapBlocks(qp, self.parent.gameboard.unoccupied, grassColor)
        self.drawMapBlocks(qp, self.parent.gameboard.cave, caveColor)
        self.drawMapBlocks(qp, self.parent.gameboard.mountain, mountainColor)
        self.drawMapBlocks(qp, self.parent.gameboard.bridge, woodColor)
        
            
    def drawMapBlocks(self, qp, coordinateList, color):
        # Draws map blocks according to the coordinate list
        qp.setPen(gridColor)
        qp.setBrush(color)
        
        for i in coordinateList:
            qp.drawRect(i[0]*blockSize, i[1]*blockSize, blockSize, blockSize)
    
    
    def drawTowerRange(self, x, y, towerRange, painter):
        
        painter.setPen(rangePenColor)
        painter.setBrush(rangeBrushColor)
        painter.drawEllipse(QPoint(x, y), towerRange, towerRange)
    
    
    def drawTowerOutline(self, x, y, painter):
        painter.setPen(rangePenColor)
        painter.setBrush(rangeBrushColor)
        painter.drawRect(x - 20, y - 20, 40, 40)
    
    
    def drawPorjectiles(self, qp):
        
        qp.setPen(projectileColor)
        qp.setBrush(projectileColor)
        
        for projectile in self.parent.gameboard.projectiles:
            
            if not projectile.isFinished:
                if projectile.name == "Bullet":
                    qp.drawEllipse(projectile.posX, projectile.posY, 3, 3)
                elif projectile.name == "Cannonball":
                    qp.drawEllipse(projectile.posX, projectile.posY, 8, 8)
    
    
    def mouseMoveEvent(self, event):
        # This method makes sure that towers are build according to the grid and that the tower outline and range are displayed properly
        if self.underMouse() and self.parent.isTowerSelected == True:
            self.mouse_x, self.mouse_y = self.calculateClosestCorner(event.pos().x(), event.pos().y())  
        
        
    def calculateClosestCorner(self, mouse_x, mouse_y):
        # Calculates the closest grid corner from mouse location      
        closest_corner_x = 0
        closest_corner_y = 0      
        
        if mouse_x % blockSize < blockSize / 2:
            closest_corner_x = mouse_x - (mouse_x % blockSize)
        else:
            closest_corner_x = mouse_x + (blockSize - mouse_x % blockSize)
                        
        if mouse_y % blockSize < blockSize / 2:
            closest_corner_y = mouse_y - (mouse_y % blockSize)
        else:
            closest_corner_y = mouse_y + (blockSize - mouse_y % blockSize)
            
        return closest_corner_x, closest_corner_y

 
    def mousePressEvent(self, e):
        # Method for building towers and checking that their location is ok
        if e.button() == Qt.LeftButton:
            
            if self.parent.gameover == False:
                
                if self.parent.isTowerSelected == True:
                    # We calculate the bottom right block for the tower
                    block1 = [int(self.mouse_x / blockSize), int(self.mouse_y / blockSize)]
                    
                    # We need to make sure that the tower doesn't go over the borders of the gameboard
                    if block1[0] > 0 and block1[1] > 0 and block1[0] < self.parent.gameboard.width and block1[1] < self.parent.gameboard.height:
                        #Then we calculate the other blocks
                        block2 = [block1[0] - 1, block1[1]]
                        block3 = [block1[0] - 1, block1[1] - 1]
                        block4 = [block1[0], block1[1] - 1]
                            
                        blocks = [block1, block2, block3, block4]
                        occupied = self.parent.gameboard.occupied
                        canPlaceTower = True
                        
                        # We check that none of the tower blocks are occupied
                        for block in blocks:
                            if block in occupied:
                                canPlaceTower = False
                                    
                        if canPlaceTower == True:
                            # We places the tower on the map
                            tower = self.parent.selectedTower
                            tower.setPosition(self.mouse_x, self.mouse_y)
                                
                            placedTower = ClickableTower(tower, self)
                            placedTower.move(block3[0] * blockSize, block3[1] * blockSize)
                            placedTower.show()
                            
                            # Then we add the tower blocks to the list of occupied tiles   
                            for block in blocks:
                                self.parent.gameboard.addToOccupied(block)
                                
                            self.parent.gameboard.addBuildTower(tower)    
                            self.parent.gameboard.buy(tower.price)
                            self.parent.gamestats.update()
                                
                            self.statusBarMessage('Tower build') 
                            self.parent.selectedTower = None
                            self.parent.isTowerSelected = False
                                
                        else:
                            self.statusBarMessage("Can't place it there!")
                                
                    else:
                            self.statusBarMessage("Can't place it there!")    
                                              
            else:
                self.statusBarMessage("The game has ended. You can't build towers.")    
                
        else:
            # If we click the right mouse button we cancel the tower selection
            self.parent.selectedTower = None
            self.parent.isTowerSelected = False
            self.statusBarMessage('')
            self.update()
    
    
    def getParent(self):
        # Not sure if I'm using this anywhere
        return self.parent
    
        
    def statusBarMessage(self, message):
        # Just a shorter way to write statusbar messages
        self.parent.statusBar().showMessage(message)
    
    
    def towerClick(self, tower):
        # Opens a popup to see tower stats and to upgrade tower
        if self.parent.gameover == False:
            
            if self.parent.isTowerSelected == False:
                self.clickedTower = tower
                # self.statusBarMessage("Tower clicked")
                self.towerPopUp = QFrame()
                self.towerPopUp.setGeometry(500, 500, 100, 100)
            
                grid = QGridLayout()
                self.towerPopUp.setLayout(grid)
                
                vbox = QVBoxLayout()
                pixmap = QLabel()
                vbox.addStretch()
                if tower.level == 2:
                    pixmap.setPixmap(tower.upgradedPicture)
                else:
                    pixmap.setPixmap(tower.picture)
                vbox.addWidget(pixmap)
                vbox.addStretch()
                
                grid.addLayout(vbox, 0, 0)
                
                towerStats = QLabel(tower.name + " Tower Stats", self)
                power = QLabel("Power: {:.0f}".format(tower.power), self)
                towerRange = QLabel("Range: {:.0f}".format(tower.range), self)
                fireRate = QLabel("Rate of Fire: " + str(tower.fireRate), self)
                level = QLabel("Level: " + str(tower.level), self)
            
                vbox2 = QVBoxLayout()
                vbox2.addWidget(towerStats)
                vbox2.addWidget(power)
                vbox2.addWidget(towerRange)
                vbox2.addWidget(fireRate)
                vbox2.addWidget(level)
            
                grid.addLayout(vbox2, 0, 1)
        
                vbox3 = QVBoxLayout()
                
                if self.clickedTower.maxLevel > self.clickedTower.level:
                    upgradeButton = QPushButton("Upgrade for " + str(tower.upgradePrice))
                    vbox3.addWidget(upgradeButton)
                    upgradeButton.clicked.connect(self.upgrade)
                else:
                    maxLevel = QLabel("Tower at maximum level.")
                    vbox3.addWidget(maxLevel)
                
                doneButton = QPushButton("Done")
                vbox3.addWidget(doneButton)
                grid.addLayout(vbox3, 0, 2)
            
                location = QPoint(QCursor.pos())
                self.towerPopUp.move(location.x() - 180, location.y())
                self.towerPopUp.show()
                doneButton.clicked.connect(self.towerPopUp.hide)
        
        else:
            self.statusBarMessage("The game has ended. Stop doing stuff.")
            
    
    def upgrade(self):
        
        if self.clickedTower.level < self.clickedTower.maxLevel:
            
            if self.parent.gameboard.money >= self.clickedTower.upgradePrice:
                self.clickedTower.upgrade()
                self.parent.gameboard.buy(self.clickedTower.upgradePrice)
                self.statusBarMessage("Tower upgraded")
                self.parent.gamestats.update()
                self.towerPopUp.hide()
        
            else:
                self.statusBarMessage("Not enough money to upgrade.")
        
        else:
            self.statusBarMessage("Tower already at maximum level.")   
    
    
    def summonEnemy(self):
        # Summons an enemy at given intervals
        waveIndex = self.parent.gameboard.currentWave - 1
        
        if self.parent.gameboard.currentWave <= len(self.parent.gameboard.waves):
            # self.parent.gameboard.waves[waveIndex][0] gives the enemy interval for that wave
            if self.parent.gameboard.currentEnemy == 1:
                # This makes sure that there's a break between enemy waves, the length of the break can be defined in globals
                if self.parent.timePassed - self.parent.waveFinishTime >= breakBetweenWaves:
                    if self.checkNextEnemy("e1", Barbarian(self.parent.gameboard.enemyPath, self)):
                        self.checkIsWaveDone()
    
                    elif self.checkNextEnemy("e2", Berserker(self.parent.gameboard.enemyPath, self)):
                        self.checkIsWaveDone()
            
            elif self.parent.timePassed % self.parent.gameboard.waves[waveIndex][0] == 0:
                    
                if self.checkNextEnemy("e1", Barbarian(self.parent.gameboard.enemyPath, self)):
                    self.checkIsWaveDone()
    
                elif self.checkNextEnemy("e2", Berserker(self.parent.gameboard.enemyPath, self)):
                    self.checkIsWaveDone()
    
    
    def checkIsWaveDone(self):

        waveIndex = self.parent.gameboard.currentWave - 1

        if self.parent.gameboard.currentEnemy > len(self.parent.gameboard.waves[waveIndex][1]):
            self.parent.gameboard.currentEnemy = 1
            self.parent.gameboard.currentWave += 1
            self.parent.waveFinishTime = self.parent.timePassed
            self.parent.gamestats.update()
            return True
        else:
            return False
    
    
    def checkNextEnemy(self, name, enemyType):
        # This method could probably be changed a bit, but it does it's job. I'll update it if I have time.
        enemyIndex = self.parent.gameboard.currentEnemy - 1
        waveIndex = self.parent.gameboard.currentWave - 1
        
        if self.parent.gameboard.waves[waveIndex][1][enemyIndex] == name:
            enemy = enemyType
            enemy.move(enemy.posX, enemy.posY)
            enemy.show()
            self.parent.gameboard.addSummonedEnemy(enemy)
            self.parent.gameboard.currentEnemy += 1
            return True
        
        else:
            return False
    
    
    def moveEnemies(self):
        
        noOfSummonedEnemies = len(self.parent.gameboard.enemiesSummoned)
        
        if noOfSummonedEnemies > 0:
            i = 0
            
            while i < noOfSummonedEnemies:
                enemy = self.parent.gameboard.enemiesSummoned[i]
                
                if not enemy.isFinished and not enemy.isDead:
                    enemy.moveEnemy()
                    
                    if enemy.checkIfFinished():
                        self.parent.gameboard.currentLives -= 1
                        self.parent.update()
                        
                        if self.parent.gameboard.currentLives <= 0:
                            self.parent.loseGame()
                        else:
                            self.checkIfGameEnded()
                              
                i += 1        
                
    
    def enemyClick(self, enemy):
        # Opens an info screen on the enemy
        if self.parent.gameover == False and enemy.isDead == False:
        
            if self.parent.isTowerSelected == False:
                # self.statusBarMessage("Enemy clicked")
                self.enemyPopUp = QFrame()
                self.enemyPopUp.setGeometry(500, 500, 100, 100)
            
                grid = QGridLayout()
                self.enemyPopUp.setLayout(grid)
            
                enemyStats = QLabel("Enemy Stats")
                name = QLabel("Name: " + str(enemy.name))
                speed = QLabel("Speed: " + str(enemy.speed))
                health = QLabel("Health: {:.0f}".format(enemy.health))
                pixmap = QLabel()
                pixmap.setPixmap(enemy.picture)
            
                vbox = QVBoxLayout()
                vbox.addWidget(enemyStats)
                vbox.addWidget(name)
                vbox.addWidget(speed)
                vbox.addWidget(health)
    
                grid.addLayout(vbox, 0, 0)
            
                vbox2 = QVBoxLayout()
                vbox2.addWidget(pixmap)
                vbox2.addStretch()
                
                doneButton = QPushButton("Done")
                vbox2.addWidget(doneButton)
                grid.addLayout(vbox2, 0, 1)
                
                location = QPoint(QCursor.pos())
                self.enemyPopUp.move(location.x() - 100, location.y())
                self.enemyPopUp.show()
                doneButton.clicked.connect(self.enemyPopUp.hide)
        
        elif self.parent.gameover == True:
            self.statusBarMessage("The game has ended. Stop doing stuff.")

        
    def checkShooting(self):
        # We go trough the towers we have build and check if they have enemies in range
        for tower in self.parent.gameboard.towersBuild:
            
            # This is kind of a simple method of checking the firerate
            # We firs check when the tower has fired it's last shot to see if it's time to shoot again
            if tower.lastShot == 0 or self.parent.timePassed - tower.lastShot >= tower.fireRate: 
                # We always shoot the enemy that has moved to the furthest block. If there's more than one enemy in the same block we select the one that's first in the list.
                # Again, this method could be improved. We could check which enemy is actually furthest down the path in actual pixels.
                i = 0
                maxBlocks = -1
                targetEnemy = None
                
                while i < len(self.parent.gameboard.enemiesSummoned):
                    
                    enemy = self.parent.gameboard.enemiesSummoned[i]
                    # We shouldn't shoot enemies that are dead or have already reached the end of the path.
                    if enemy.isFinished == False and enemy.isDead == False:
                        if tower.inRange(enemy):
                            if enemy.blocksMoved > maxBlocks:
                                maxBlocks = enemy.blocksMoved
                                targetEnemy = enemy
                    
                    i += 1
                
                if targetEnemy != None:
                    projectile = tower.shoot(targetEnemy)
                    tower.lastShot = self.parent.timePassed
                    self.parent.gameboard.addProjectile(projectile)  
                    # self.statusBarMessage(tower.name + " shoots " + targetEnemy.name + " with " + projectile.name)
                
    
    def moveProjectiles(self):
        
        for projectile in self.parent.gameboard.projectiles:
            
            if not projectile.isFinished:
                projectile.move()
                
                if projectile.checkIfHit():
                    # self.statusBarMessage(projectile.destination.name + " takes a hit of " + str(projectile.damage) + " damage.")
                    if projectile.name == "Cannonball":
                        # Cannonballs damage all enemies in the same block.
                        # This method could also be improved. We should probably hit enemies that are within a certain range from the target enemy instead of being in the same block.
                        for enemy in self.parent.gameboard.enemiesSummoned:
                            if enemy != projectile.destination and enemy.currentBlock == projectile.destination.currentBlock:
                                if enemy.getHit(projectile.damage):
                                    enemy.checkIfDead()
                    
                    if projectile.destination.checkIfDead():
                        # self.statusBarMessage(projectile.destination.name + " is dead. You get " + str(projectile.destination.reward) + " coins.")
                        self.parent.gameboard.addMoney(projectile.destination.reward)
                        self.parent.gamestats.update()

                        self.checkIfGameEnded()
    
    
    def checkIfGameEnded(self):
        # This method checks if all waves have been sent and all summoned enemies have either reached their destination or died.
        allDone = False
        
        if self.parent.gameboard.currentWave >= len(self.parent.gameboard.waves):
            # self.statusBarMessage("Last wave!")
            # Check how many enemies the map has in total. This should probably be an attribute that's calculated already when the GameBoard-object is made.
            totalEnemies = 0
            for wave in self.parent.gameboard.waves:
                totalEnemies += len(wave[1])
            
            # Then we compare that number to the number of summoned enemies
            if len(self.parent.gameboard.enemiesSummoned) == totalEnemies:
                # self.statusBarMessage("All enemies summoned!")
                allDone = True
                # Then we check if they are all dead or finished
                for enemy in self.parent.gameboard.enemiesSummoned:
                    if enemy.isFinished == False and enemy.isDead == False:
                        allDone = False
        
        # If so the game has ended and the player is victorious               
        if allDone:
            self.parent.winGame()
Esempio n. 39
0
class Example(QWidget):

    def __init__(self):
        super().__init__()
        self.initUI()

    def initUI(self):
        # checkbox
        cb = QCheckBox('Show title', self)
        cb.move(20, 160)
        cb.toggle()
        cb.stateChanged.connect(self.changeTitle)

        # toggle button
        self.col = QColor(0, 0, 0)
        redb = QPushButton('Red', self)
        redb.setCheckable(True)
        redb.move(10, 10)
        redb.clicked[bool].connect(self.setColor)
        redb = QPushButton('Green', self)
        redb.setCheckable(True)
        redb.move(10, 60)
        redb.clicked[bool].connect(self.setColor)
        blueb = QPushButton('Blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 110)
        blueb.clicked[bool].connect(self.setColor)
        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 100, 100)
        self.square.setStyleSheet("QWidget { background-color: %s }" %
                                  self.col.name())

        # slider
        sld = QSlider(Qt.Horizontal, self)
        sld.setFocusPolicy(Qt.NoFocus)
        sld.setGeometry(30, 210, 100, 30)
        sld.valueChanged[int].connect(self.changeValue)

        # pixmap
        self.label = QLabel(self)
        self.label.setPixmap(QPixmap('web.png'))
        self.label.setGeometry(160, 210, 80, 30)

        # process bar
        self.pbar = QProgressBar(self)
        self.pbar.setGeometry(30, 260, 200, 25)
        self.btn = QPushButton('Start', self)
        self.btn.move(40, 310)
        self.btn.clicked.connect(self.doAction)
        self.timer = QBasicTimer()
        self.step = 0

        # calendar
        cal = QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(300, 10)
        cal.clicked[QDate].connect(self.showDate)
        self.lbl = QLabel(self)
        date = cal.selectedDate()
        self.lbl.setText(date.toString())
        self.lbl.move(300, 260)

        # line edit
        self.lbl2 = QLabel(self)
        qle = QLineEdit(self)
        qle.move(300, 310)
        self.lbl2.move(480, 310)
        qle.textChanged[str].connect(self.onChanged)

        self.setGeometry(300, 300, 640, 480)
        self.setWindowTitle('QCheckBox')
        self.show()

    def changeTitle(self, state):
        if state == Qt.Checked:
            self.setWindowTitle('QCheckBox')
        else:
            self.setWindowTitle('')

    def setColor(self, pressed):
        source = self.sender()
        if pressed:
            val = 255
        else:
            val = 0
        if source.text() == "Red":
            self.col.setRed(val)
        elif source.text() == "Green":
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)
        self.square.setStyleSheet("QFrame { background-color: %s }" %
                                  self.col.name())

    def changeValue(self, value):
        if value == 0:
            self.label.setPixmap(QPixmap('web.png'))
        elif value > 0 and value <= 30:
            self.label.setPixmap(QPixmap('web.png'))
        elif value > 30 and value < 80:
            self.label.setPixmap(QPixmap('web.png'))
        else:
            self.label.setPixmap(QPixmap('web.png'))

    def timerEvent(self, e):
        if self.step >= 100:
            self.timer.stop()
            self.btn.setText('Finished')
            return
        self.step = self.step + 1
        self.pbar.setValue(self.step)

    def doAction(self):
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText('Start')
        else:
            self.timer.start(100, self)
            self.btn.setText('Stop')

    def showDate(self, date):
        self.lbl.setText(date.toString())

    def onChanged(self, text):
        self.lbl2.setText(text)
        self.lbl2.adjustSize()
Esempio n. 40
0
class UserInterface(QMainWindow):
    
    def __init__(self, parent):
        super().__init__(parent) 
        self._gameBoard = GameBoard()
        self._parent = parent
        
        self._gameover = False
        
        self._isTowerSelected = False
        self._isTowerHovered = False
        self._towerBeingHovered = None
        self._selectedTower = None
        
        self._waveFinishTime = 0
        
        self._gameSpeed = self._parent.speed
        self._timePassed = 0
        self.timer = QBasicTimer()
        
        self._gameBoard.readMapData(os.path.join('./Maps/', self._parent.map))
        self.timer.start(self._gameSpeed, self)
        self.initUI()
              

    def initUI(self):
        
        centralWidget = QWidget()
        self.setCentralWidget(centralWidget)
        self.setWindowTitle(self._gameBoard.name)
        self.setWindowIcon(QIcon(os.path.join('./Pictures/', 'berserker_icon.png'))) #Apparently this doens't work the same way on a mac.
        self.statusBar().showMessage('Ready!')
        vbox = QVBoxLayout()
        centralWidget.setLayout(vbox)
        self.gameStats = GameStats(self)
        self.mapView = MapView(self)
        self.bottomButtons = BottomButtons(self)
        vbox.addWidget(self.gameStats)
        vbox.addWidget(self.mapView)
        vbox.addWidget(self.bottomButtons)
        
        screen = QDesktopWidget().screenGeometry()
        self.setGeometry((screen.width() - (self.gameboard.width - 1) * 20) / 2, (screen.height() - self.gameboard.height * 20 - 200) / 2, 500, 400)
        
        self.show()
        
        
    def getGameboard(self):
        return self._gameBoard
    
    
    def getIsTowerSelected(self):
        return self._isTowerSelected
    
    
    def setIsTowerSelected(self, boolean):
        self._isTowerSelected = boolean
        
    
    def getSelectedTower(self):
        return self._selectedTower
    
    
    def setSelectedTower(self, towerType):
        self._selectedTower = towerType
    
    
    def getIsTowerBeingHovered(self):
        return self._isTowerHovered
    
    
    def setIsTowerBeingHovered(self, boolean, tower):
        self._isTowerHovered = boolean
        self._towerBeingHovered = tower
    
    
    def getTowerBeingHovered(self):
        return self._towerBeingHovered
    

    def getGameStats(self):
        return self.gameStats


    def getTimePassed(self):
        return self._timePassed
    
    
    def setWaveFinishTime(self, value):
        self._waveFinishTime = value
    
    
    def getGameOver(self):
        return self._gameover
    
    
    def timerEvent(self, event):
        # The time passed attribute helps with setting the enemy appearance interval and tower firerate.
        self._timePassed += 1
        self.mapView.summonEnemy()
        self.mapView.moveEnemies()
        self.mapView.checkShooting()
        self.mapView.moveProjectiles()
        self.mapView.update()
       
    
    def loseGame(self):
        self.bottomButtons.clockTimer.stop()
        self.timer.stop()
        self.statusBar().showMessage('Game has ended. You lost.')
        self._gameover = True
        
        self.popUp = QFrame()
        self.popUp.setGeometry(500, 500, 100, 100)
        
        vbox = QVBoxLayout()
        
        youLost = QLabel()
        youLost.setPixmap(QPixmap(os.path.join('./Pictures/', "game_over.png")))
        vbox.addWidget(youLost)
        
        done = QPushButton("Done")
        vbox.addWidget(done)

        self.popUp.setLayout(vbox)
        self.popUp.move(self.mapToGlobal(QPoint(0,0)).x() + self.gameboard.width*blockSize / 2 - 130, self.mapToGlobal(QPoint(0,0)).y() + self.gameboard.height*blockSize / 2)
        self.popUp.show()
        done.clicked.connect(self.backToMainMenu)
    
    
    def winGame(self):
        self.bottomButtons.clockTimer.stop()
        self.timer.stop()
        self.statusBar().showMessage('Game has ended. You won.')
        self._gameover = True
        
        self.popUp = QFrame()
        self.popUp.setGeometry(500, 500, 100, 100)
        
        vbox = QVBoxLayout()
        
        youLost = QLabel()
        youLost.setPixmap(QPixmap(os.path.join('./Pictures/', "victory.png")))
        vbox.addWidget(youLost)
        
        done = QPushButton("Done")
        vbox.addWidget(done)

        self.popUp.setLayout(vbox)
        self.popUp.move(self.mapToGlobal(QPoint(0,0)).x() + self.gameboard.width*blockSize / 2 - 130, self.mapToGlobal(QPoint(0,0)).y() + self.gameboard.height*blockSize / 2)
        self.popUp.show()
        done.clicked.connect(self.backToMainMenu)
        
        
    def backToMainMenu(self):
        self._parent.show()
        self.popUp.deleteLater()
        self.deleteLater()
    

    def getGameSpeed(self):
        return self._gameSpeed


    def setGameSpeed(self, value):
        self._gameSpeed = value
    

    def getWaveFinishTime(self):
        return self._waveFinishTime
    
    
    def getTimer(self):
        return self.timer
    

    isTowerSelected = property(getIsTowerSelected, setIsTowerSelected)
    selectedTower = property(getSelectedTower, setSelectedTower)
    isTowerHovered = property(getIsTowerBeingHovered)
    towerBeingHovered = property(getTowerBeingHovered)
    gamestats = property(getGameStats)
    gameboard = property(getGameboard)
    timePassed = property(getTimePassed)
    gameover = property(getGameOver)
    gameSpeed = property(getGameSpeed, setGameSpeed)
    waveFinishTime = property(getWaveFinishTime, setWaveFinishTime)
Esempio n. 41
0
class Example(QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()

    def initUI(self):
        # checkBox
        cb = QCheckBox('show title', self)
        cb.move(10, 10)
        cb.toggle()
        cb.stateChanged.connect(self.changeTitle)

        # 颜色混合
        self.col = QColor(0, 0, 0)
        redb = QPushButton('Red', self)
        redb.setCheckable(True)
        redb.move(10, 30)
        redb.clicked[bool].connect(self.setColor)

        grnb = QPushButton('Green', self)
        grnb.setCheckable(True)
        grnb.move(10, 60)
        grnb.clicked[bool].connect(self.setColor)

        blueb = QPushButton('Blue', self)
        blueb.setCheckable(True)
        blueb.move(10, 90)
        blueb.clicked[bool].connect(self.setColor)

        self.square = QFrame(self)
        self.square.setGeometry(150, 20, 50, 50)
        self.square.setStyleSheet("QWidget { background-color: %s}" %
                                  self.col.name())

        # slider 滚动条
        sld = QSlider(Qt.Horizontal, self)
        sld.setFocusPolicy(Qt.NoFocus)
        sld.setGeometry(10, 120, 100, 10)
        sld.valueChanged[int].connect(self.changeValue)

        self.label = QLabel(self)
        self.label.setPixmap(QPixmap('1.png'))
        self.label.setGeometry(150, 90, 80, 80)

        # 进度条ProgressBar
        self.pbar = QProgressBar(self)
        self.pbar.setGeometry(10, 170, 200, 20)
        self.btn = QPushButton('Start', self)
        self.btn.move(10, 200)
        self.btn.clicked.connect(self.doAction)

        self.timer = QBasicTimer()
        self.step = 0

        # Calendar 日历
        cal = QCalendarWidget(self)
        cal.setGridVisible(True)
        cal.move(10, 230)
        cal.clicked[QDate].connect(self.showDate)
        self.lbl = QLabel(self)
        date = cal.selectedDate()
        self.lbl.setText(date.toString())
        self.lbl.move(80, 440)

        self.setGeometry(300, 200, 300, 500)
        self.setWindowTitle('Toggle')
        self.show()

    def changeTitle(self, state):
        if state == Qt.Checked:
            self.setWindowTitle('Toogle')
        else:
            self.setWindowTitle(' ')

    def setColor(self, pressed):
        source = self.sender()
        if pressed:
            val = 255
        else:
            val = 0

        if source.text() == "Red":
            self.col.setRed(val)
        elif source.text() == "Green":
            self.col.setGreen(val)
        else:
            self.col.setBlue(val)

        self.square.setStyleSheet("QFrame {background-color: %s}" % self.col.name())

    def changeValue(self, value):
        if value == 0:
            self.label.setPixmap(QPixmap('1.png'))
        elif 0 < value <= 30:
            self.label.setPixmap(QPixmap('2.png'))
        elif 30 < value < 80:
            self.label.setPixmap(QPixmap('3.png'))
        else:
            self.label.setPixmap(QPixmap('4.png'))

    def timerEvent(self, *args, **kwargs):
        if self.step >= 100:
            self.timer.stop()
            self.btn.setText('Finished')
            return
        self.step += 1
        self.pbar.setValue(self.step)

    def doAction(self):
        if self.timer.isActive():
            self.timer.stop()
            self.btn.setText('Start')
        else:
            self.timer.start(100, self)
            self.btn.setText('Stop')

    def showDate(self, date):
        self.lbl.setText(date.toString())