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)
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())