Exemple #1
0
class ReverseWidget(ToolWidget):
    def __init__(self, parent=None):
        super(ReverseWidget, self).__init__(parent)

        self.tineye_radio = QRadioButton(self.tr("TinEye"))
        self.tineye_radio.setIcon(QIcon("icons/tineye.png"))
        self.google_radio = QRadioButton(self.tr("Google"))
        self.google_radio.setIcon(QIcon("icons/google.svg"))
        self.bing_radio = QRadioButton(self.tr("Bing"))
        self.bing_radio.setIcon(QIcon("icons/bing.svg"))
        self.root_radio = QRadioButton(self.tr("RootAbout"))
        self.root_radio.setIcon(QIcon("icons/rootabout.png"))
        self.karma_radio = QRadioButton(self.tr("KarmaDecay"))
        self.karma_radio.setIcon(QIcon("icons/karmadecay.jpg"))
        self.tineye_radio.setChecked(True)
        self.last_radio = self.tineye_radio
        self.web_view = QWebEngineView()
        self.choose()

        self.tineye_radio.clicked.connect(self.choose)
        self.google_radio.clicked.connect(self.choose)
        self.bing_radio.clicked.connect(self.choose)
        self.root_radio.clicked.connect(self.choose)
        self.karma_radio.clicked.connect(self.choose)

        top_layout = QHBoxLayout()
        top_layout.addWidget(QLabel(self.tr("Search engine:")))
        top_layout.addWidget(self.tineye_radio)
        top_layout.addWidget(self.google_radio)
        top_layout.addWidget(self.bing_radio)
        top_layout.addWidget(self.root_radio)
        top_layout.addWidget(self.karma_radio)
        top_layout.addStretch()
        main_layout = QVBoxLayout()
        main_layout.addLayout(top_layout)
        main_layout.addWidget(self.web_view)
        self.setLayout(main_layout)

    def choose(self):
        if self.tineye_radio.isChecked():
            self.web_view.load(QUrl("https://tineye.com/"))
            self.last_radio = self.tineye_radio
        elif self.google_radio.isChecked():
            self.web_view.load(QUrl("https://www.google.com/imghp"))
            self.last_radio = self.google_radio
        elif self.bing_radio.isChecked():
            self.web_view.load(
                QUrl("https://www.bing.com/?scope=images&nr=1&FORM=NOFORM"))
            self.last_radio = self.bing_radio
        elif self.root_radio.isChecked():
            self.web_view.load(QUrl("http://rootabout.com/"))
            self.last_radio = self.root_radio
        elif self.karma_radio.isChecked():
            self.web_view.load(QUrl("http://karmadecay.com/"))
            self.last_radio = self.karma_radio
        else:
            self.last_radio.setChecked(True)
Exemple #2
0
def test_icon(pixmap_differ: PixmapDiffer):
    actual: QPainter
    expected: QPainter
    with pixmap_differ.create_painters(
            300, 240, 'scaled_radio_button_icon') as (actual, expected):
        display = TicTacToeDisplay()
        icon = display.player1_icon
        display.close()
        ex_widget = QWidget()
        ex_layout = QVBoxLayout(ex_widget)
        ex_radio1 = QRadioButton()
        ex_radio2 = QRadioButton('Lorem ipsum')
        ex_radio1.setIcon(icon)
        ex_radio2.setIcon(icon)
        ex_font = ex_radio1.font()
        if ex_font.family() == 'Sans Serif':
            # Fonts are different on Travis CI.
            big_font_size = 93
            small_font_size = 22
            ex_radio1.setStyleSheet('QRadioButton::indicator {width: 93} '
                                    'QRadioButton {spacing: 46}')
            ex_radio2.setStyleSheet('QRadioButton::indicator {width: 22} '
                                    'QRadioButton {spacing: 11}')
        else:
            big_font_size = 93
            small_font_size = 25
            ex_radio1.setStyleSheet('QRadioButton::indicator {width: 93} '
                                    'QRadioButton {spacing: 46}')
            ex_radio2.setStyleSheet('QRadioButton::indicator {width: 25} '
                                    'QRadioButton {spacing: 12}')
        ex_radio1.setIconSize(
            QSize(big_font_size * 3 // 2, big_font_size * 3 // 2))
        ex_radio2.setIconSize(
            QSize(small_font_size * 3 // 2, small_font_size * 3 // 2))
        ex_font.setPointSize(big_font_size)
        ex_radio1.setFont(ex_font)
        ex_font.setPointSize(small_font_size)
        ex_radio2.setFont(ex_font)
        ex_size_policy = QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
        ex_radio1.setSizePolicy(ex_size_policy)
        ex_radio2.setSizePolicy(ex_size_policy)
        ex_layout.addWidget(ex_radio1)
        ex_layout.addWidget(ex_radio2)
        ex_layout.setStretch(0, 4)
        ex_layout.setStretch(1, 1)

        ex_widget.resize(300, 240)
        expected.drawPixmap(0, 0, ex_widget.grab())

        widget = QWidget()
        layout = QVBoxLayout(widget)
        radio1 = ScaledRadioButton()
        radio2 = ScaledRadioButton('Lorem ipsum')
        radio1.setIcon(icon)
        radio2.setIcon(icon)
        size_policy = QSizePolicy(QSizePolicy.Ignored, QSizePolicy.Ignored)
        radio1.setSizePolicy(size_policy)
        radio2.setSizePolicy(size_policy)
        layout.addWidget(radio1)
        layout.addWidget(radio2)
        layout.setStretch(0, 4)
        layout.setStretch(1, 1)

        widget.resize(300, 240)

        actual.drawPixmap(0, 0, widget.grab())