コード例 #1
0
class Ui_Dialog(object):
    def setupUi(self, Dialog):
        Dialog.setObjectName("Dialog")
        Dialog.resize(1112, 826)
        self.gridLayout = QtWidgets.QGridLayout(Dialog)
        self.gridLayout.setObjectName("gridLayout")
        self.label = QtWidgets.QLabel(Dialog)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.label.setFont(font)
        self.label.setObjectName("label")
        self.gridLayout.addWidget(self.label, 0, 0, 1, 1)
        self.lineEditURL = QtWidgets.QLineEdit(Dialog)
        self.lineEditURL.setObjectName("lineEditURL")
        self.gridLayout.addWidget(self.lineEditURL, 0, 1, 1, 5)
        self.pushButtonGo = QtWidgets.QPushButton(Dialog)
        font = QtGui.QFont()
        font.setPointSize(10)
        self.pushButtonGo.setFont(font)
        self.pushButtonGo.setDefault(True)
        self.pushButtonGo.setObjectName("pushButtonGo")
        self.gridLayout.addWidget(self.pushButtonGo, 0, 6, 1, 1)
        self.pushButtonZoomIn = QtWidgets.QPushButton(Dialog)
        self.pushButtonZoomIn.setObjectName("pushButtonZoomIn")
        self.gridLayout.addWidget(self.pushButtonZoomIn, 1, 1, 1, 1)
        self.pushButtonZoomOut = QtWidgets.QPushButton(Dialog)
        self.pushButtonZoomOut.setObjectName("pushButtonZoomOut")
        self.gridLayout.addWidget(self.pushButtonZoomOut, 1, 2, 1, 1)
        self.pushButtonBack = QtWidgets.QPushButton(Dialog)
        self.pushButtonBack.setObjectName("pushButtonBack")
        self.gridLayout.addWidget(self.pushButtonBack, 1, 3, 1, 1)
        self.pushButtonForward = QtWidgets.QPushButton(Dialog)
        self.pushButtonForward.setObjectName("pushButtonForward")
        self.gridLayout.addWidget(self.pushButtonForward, 1, 4, 1, 1)
        self.pushButtonStop = QtWidgets.QPushButton(Dialog)
        self.pushButtonStop.setObjectName("pushButtonStop")
        self.gridLayout.addWidget(self.pushButtonStop, 1, 5, 1, 1)
        self.pushButtonReload = QtWidgets.QPushButton(Dialog)
        self.pushButtonReload.setObjectName("pushButtonReload")
        self.gridLayout.addWidget(self.pushButtonReload, 1, 6, 1, 1)
        self.widget = QWebEngineView(Dialog)
        font = QtGui.QFont()
        font.setPointSize(12)
        self.widget.setFont(font)
        self.widget.setStyleSheet("background-color: rgb(200, 194, 193);")
        self.widget.setObjectName("widget")
        self.gridLayout.addWidget(self.widget, 2, 0, 1, 7)

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

    def retranslateUi(self, Dialog):
        _translate = QtCore.QCoreApplication.translate
        Dialog.setWindowTitle(_translate("Dialog", "Dialog"))
        self.label.setText(_translate("Dialog", "Enter URL"))
        self.pushButtonGo.setText(_translate("Dialog", "GO"))
        self.pushButtonZoomIn.setText(_translate("Dialog", "ZoomIn"))
        self.pushButtonZoomOut.setText(_translate("Dialog", "ZoomOut"))
        self.pushButtonBack.setText(_translate("Dialog", "Back"))
        self.pushButtonForward.setText(_translate("Dialog", "Forward"))
        self.pushButtonStop.setText(_translate("Dialog", "Stop"))
        self.pushButtonReload.setText(_translate("Dialog", "Reload"))
コード例 #2
0
class RssWidget(QtWidgets.QWidget):
    def __init__(self):
        QtWidgets.QWidget.__init__(self)

        self.categories = QtWidgets.QListWidget()
        self.categories.setFixedWidth(100)
        font = QtGui.QFont("Garamond")
        font.setPointSize(8)
        font.setBold(True)
        self.categories.setFont(font)

        self.get_rss_categories()

        keys = list(rss_contents.keys())
        if keys:
            self.data_table = RSSModel(list(rss_contents[keys[0]].keys()))
        else:
            self.data_table = RSSModel([])

        self.description = QWebEngineView()
        self.description.setFont(QtGui.QFont("Helvetica"))
        self.description.setFocusPolicy(QtCore.Qt.NoFocus)

        content_layout = QtWidgets.QVBoxLayout()

        self.data_table_view = QtWidgets.QTableView()
        self.data_table_view.horizontalHeader().setStretchLastSection(True)
        self.data_table_view.setModel(self.data_table)
        x = self.frameGeometry().height()
        self.data_table_view.setFixedHeight(x / 2 - 10)
        self.data_table_view.clicked.connect(self.show_rss_description)

        content_layout.addWidget(self.data_table_view)
        content_layout.addWidget(self.description)

        main_layout = QtWidgets.QHBoxLayout()
        main_layout.addWidget(self.categories)
        main_layout.addLayout(content_layout)

        self.setLayout(main_layout)

    def is_categories(self):
        if self.categories.count() > 0:
            return True
        else:
            return False

    def refresh_table(self):
        self.description.setHtml("")
        for i in range(self.data_table.rowCount(), 0, -1):
            self.data_table_view.selectRow(i)

    def show_rss_titles_from_categories(self, data):
        if data is None:
            self.data_table.update([])
            return

        content = data.text()
        titles = list(rss_contents[content].keys())

        self.data_table.update(titles)

        self.refresh_table()

    def show_rss_description(self, index):
        title = self.data_table.get_title(index)
        current_rss_dict = rss_contents[self.categories.currentItem().text()]
        if title not in current_rss_dict:
            self.description.setHtml("")
            return

        description = current_rss_dict[title]
        self.description.setHtml(description)

    def get_rss_categories(self):
        for key in rss.keys():
            items = self.categories.findItems(key, QtCore.Qt.MatchExactly)
            if key not in [item.text() for item in items]:
                self.categories.addItem(key)
                self.categories.itemClicked.connect(
                    self.show_rss_titles_from_categories)