Browse Source

Allow the QR code in the receive tab to be variable size

patch-4
ThomasV 3 years ago
parent
commit
0431cd825e
  1. 22
      electrum/gui/qt/main_window.py
  2. 7
      electrum/gui/qt/util.py

22
electrum/gui/qt/main_window.py

@ -1212,22 +1212,20 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
self.receive_lightning_help = QWidget() self.receive_lightning_help = QWidget()
self.receive_lightning_help.setVisible(False) self.receive_lightning_help.setVisible(False)
self.receive_lightning_help.setLayout(vbox) self.receive_lightning_help.setLayout(vbox)
self.receive_address_qr = QRCodeWidget()
self.receive_URI_qr = QRCodeWidget()
self.receive_lightning_qr = QRCodeWidget()
fixedSize = 200 min_size = QSize(200, 200)
for e in [self.receive_address_e, self.receive_URI_e, self.receive_lightning_e]: for e in [self.receive_address_e, self.receive_URI_e, self.receive_lightning_e]:
e.setFont(QFont(MONOSPACE_FONT)) e.setFont(QFont(MONOSPACE_FONT))
e.addCopyButton(self.app) e.addCopyButton(self.app)
e.setReadOnly(True) e.setReadOnly(True)
e.setFixedSize(fixedSize, fixedSize) e.setMinimumSize(min_size)
for w in [self.receive_address_help, self.receive_lightning_help]: for w in [self.receive_address_help, self.receive_lightning_help]:
w.setFixedSize(fixedSize, fixedSize) w.setMinimumSize(min_size)
self.receive_address_qr = QRCodeWidget()
self.receive_URI_qr = QRCodeWidget()
self.receive_lightning_qr = QRCodeWidget()
for w in [self.receive_address_qr, self.receive_URI_qr, self.receive_lightning_qr]: for w in [self.receive_address_qr, self.receive_URI_qr, self.receive_lightning_qr]:
w.setFixedSize(fixedSize, fixedSize) w.setMinimumSize(min_size)
self.receive_lightning_e.textChanged.connect(self.update_receive_widgets) self.receive_lightning_e.textChanged.connect(self.update_receive_widgets)
@ -1291,11 +1289,11 @@ class ElectrumWindow(QMainWindow, MessageBoxMixin, Logger):
w.searchable_list = self.request_list w.searchable_list = self.request_list
vbox = QVBoxLayout(w) vbox = QVBoxLayout(w)
vbox.addLayout(hbox) vbox.addLayout(hbox)
vbox.addStretch()
vbox.addStretch(1)
vbox.addWidget(self.receive_requests_label) vbox.addWidget(self.receive_requests_label)
vbox.addWidget(self.request_list) vbox.addWidget(self.request_list)
vbox.setStretchFactor(self.request_list, 1000) vbox.setStretchFactor(hbox, 40)
vbox.setStretchFactor(self.request_list, 60)
self.request_list.update() # after parented and put into a layout, can update without flickering self.request_list.update() # after parented and put into a layout, can update without flickering
return w return w

7
electrum/gui/qt/util.py

@ -1428,6 +1428,13 @@ class VTabWidget(QtWidgets.QTabWidget):
self.setTabBar(VTabBar(self)) self.setTabBar(VTabBar(self))
self.setTabPosition(QtWidgets.QTabWidget.West) self.setTabPosition(QtWidgets.QTabWidget.West)
def resizeEvent(self, e):
# keep square aspect ratio when resized
size = e.size()
w = self.tabBar().width() + size.height()
self.setFixedWidth(w)
return super().resizeEvent(e)
if __name__ == "__main__": if __name__ == "__main__":
app = QApplication([]) app = QApplication([])

Loading…
Cancel
Save