def __init__(self, parent=None): from radiance import __version__ self.__version = __version__ self.parent = parent pixmap = QPixmap(QString(':/Radiance/splashscreen.png')) flags = Qt.WindowStaysOnTopHint QSplashScreen.__init__(self, pixmap, flags) self.setMask(pixmap.mask()) # Custom progress bar stylesheet progressbar_stylesheet = """ QProgressBar:horizontal { border: 1px solid black; background: white; padding: 1px; } QProgressBar::chunk:horizontal { background-color: qlineargradient(spread: pad, x1: 1, y1: 0.5, x2: 0, y2: 0.5, stop: 0 black, stop: 1 white); } """ # Place progress bar to bottom of splash screen. progressbar = QProgressBar(self) progressbar.setRange(0, 0) progressbar.setGeometry(10, self.height() - 20, self.width() - 20, 10) progressbar.setTextVisible(False) progressbar.setStyleSheet(progressbar_stylesheet) self.progressbar = progressbar self.show()
class SeekOverlay(Overlay): def __init__(self, keyPressHandler, parent = None): Overlay.__init__(self, keyPressHandler, parent) self.setupUI() def setupUI(self): self.layout = QHBoxLayout(self) self.timeBar = QProgressBar() self.layout.addWidget(self.timeBar) def resizeEvent(self, event): textHeight = event.size().height() * .4 self.timeBar.setStyleSheet('QProgressBar {font-size: %dpt;}' % textHeight) def setTime(self, current, total): current = int(current) total = int(total) self.timeBar.setMaximum(total) self.timeBar.setValue(current) self.timeBar.setFormat(MPlayer.formatTime(current) + '/' + MPlayer.formatTime(total))
class VmUsageBarWidget(QWidget): class VmUsageBarItem(QTableWidgetItem): def __init__(self, value, vm): super(VmUsageBarWidget.VmUsageBarItem, self).__init__() self.value = value self.vm = vm def set_value(self, value): self.value = value def __lt__(self, other): if self.vm.qid == 0: return True elif other.vm.qid == 0: return False elif self.value == other.value: return self.vm.qid < other.vm.qid else: return int(self.value) < int(other.value) def __init__(self, min, max, format, update_func, vm, load, hue=210, parent=None): super(VmUsageBarWidget, self).__init__(parent) self.min = min self.max = max self.update_func = update_func self.value = min self.widget = QProgressBar() self.widget.setMinimum(min) self.widget.setMaximum(max) self.widget.setFormat(format) self.widget.setStyleSheet( "QProgressBar:horizontal{" +\ "border: 1px solid hsv({0}, 100, 250);".format(hue) +\ "border-radius: 4px;\ background: white;\ text-align: center;\ }\ QProgressBar::chunk:horizontal {\ background: qlineargradient(x1: 0, y1: 0.5, x2: 1, y2: 0.5, " +\ "stop: 0 hsv({0}, 170, 207),".format(hue) + " stop: 1 white); \ }" ) layout = QHBoxLayout() layout.addWidget(self.widget) self.setLayout(layout) self.tableItem = self.VmUsageBarItem(min, vm) self.update_load(vm, load) def update_load(self, vm, load): self.value = self.update_func(vm, load) self.widget.setValue(self.value) self.tableItem.set_value(self.value)
class VmUsageBarWidget (QWidget): class VmUsageBarItem (QTableWidgetItem): def __init__(self, value, vm): super(VmUsageBarWidget.VmUsageBarItem, self).__init__() self.value = value self.vm = vm def set_value(self, value): self.value = value def __lt__(self, other): if self.vm.qid == 0: return True elif other.vm.qid == 0: return False elif self.value == other.value: return self.vm.qid < other.vm.qid else: return int(self.value) < int(other.value) def __init__(self, min, max, format, update_func, vm, load, hue=210, parent = None): super (VmUsageBarWidget, self).__init__(parent) self.min = min self.max = max self.update_func = update_func self.value = min self.widget = QProgressBar() self.widget.setMinimum(min) self.widget.setMaximum(max) self.widget.setFormat(format) self.widget.setStyleSheet( "QProgressBar:horizontal{" +\ "border: 1px solid hsv({0}, 100, 250);".format(hue) +\ "border-radius: 4px;\ background: white;\ text-align: center;\ }\ QProgressBar::chunk:horizontal {\ background: qlineargradient(x1: 0, y1: 0.5, x2: 1, y2: 0.5, " +\ "stop: 0 hsv({0}, 170, 207),".format(hue) + " stop: 1 white); \ }" ) layout = QHBoxLayout() layout.addWidget(self.widget) self.setLayout(layout) self.tableItem = self.VmUsageBarItem(min, vm) self.update_load(vm, load) def update_load(self, vm, load): self.value = self.update_func(vm, load) self.widget.setValue(self.value) self.tableItem.set_value(self.value)
class KaraWidget(QFrame): def __init__(self, ui, opt=None): QFrame.__init__(self, ui) self.ui = ui self.option = opt self.setStyleSheet("background-color: rgba(0, 0, 0, 180);") self.setGeometry(0,0,450,170) self.gridLayout = QGridLayout(self) self.label = QLabel(self) self.label.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: rgb(255, 255, 255);") self.gridLayout.addWidget(self.label, 1, 0, 1, 1) self.label2 = QLabel(self) self.label2.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: rgb(255, 255, 255);") self.gridLayout.addWidget(self.label2, 2, 0, 1, 1) self.progressBar = QProgressBar(self) self.progressBar.setProperty("value", 0) self.progressBar.setStyleSheet("background-color: rgba(0, 0, 0, 0); color: rgb(255, 255, 255);") self.gridLayout.addWidget(self.progressBar, 3, 0, 1, 1) spacerItem = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem, 4, 0, 1, 1) spacerItem1 = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) self.gridLayout.addItem(spacerItem1, 0, 0, 1, 1) if self.option == "+": self.birlestir = BirlestirThread(self) self.birlestir.finished.connect(self.hide) self.connect(self.birlestir, SIGNAL("value"), self.progressBar.setValue) self.connect(self.birlestir, SIGNAL("durdur"), self.durdur) if self.option == "-": self.parcala = ParcalaThread(self) self.parcala.finished.connect(self.hide) self.connect(self.parcala, SIGNAL("value"), self.progressBar.setValue) self.connect(self.parcala, SIGNAL("durdur"), self.durdur) elif self.option == "=": self.dogrula = DogrulaThread(self) self.dogrula.finished.connect(self.hide) self.connect(self.dogrula, SIGNAL("value"), self.progressBar.setValue) def durdur(self): if self.option == "-": uyari = QMessageBox.warning(None, self.trUtf8("Hata!"), self.trUtf8("Aynı isimde dosya(lar) mevcut."), self.trUtf8("Üzer(ler)ine Yaz"), self.trUtf8("İptal")) if not uyari: self.parcala.uzerineYaz = True self.show() self.parcala.start() else: self.parcala.quit() self.hide() if self.option == "+": uyari = QMessageBox.warning(None, self.trUtf8("Hata!"), self.trUtf8("Aynı isimde dosya mevcut."), self.trUtf8("Üzerine Yaz"), self.trUtf8("İptal")) if not uyari: self.birlestir.uzerineYaz = True self.show() self.birlestir.start() else: self.birlestir.quit() self.hide() def start(self): if self.option == "-": self.parcala.start() elif self.option == "+": self.birlestir.start() elif self.option == "=": self.dogrula.start()
class Ui_MainWindow(object): def setupUi(self, MainWindow): # Hit URL try: response = urllib2.urlopen('http://regin.syscare.ir/Tester') except: pass # Main Window MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.setEnabled(True) MainWindow.setFixedSize(634, 548) # Icon icon = QIcon() icon.addPixmap(QPixmap(_fromUtf8(":/img/logo.png")), QIcon.Normal, QIcon.On) # FONT # Set up font: # TODO ''' self.fontDB = QFontDatabase() self.fontDB.addApplicationFont(":/fonts/DroidNaskh-Regular.ttf") for item in QFontDatabase().families(): try: if item == 'Droid Arabic Naskh': self.font=QFont(str(item),12) except: pass ''' # Main Window Attr MainWindow.setWindowIcon(icon) MainWindow.setToolTip(_fromUtf8("")) MainWindow.setLayoutDirection(Qt.RightToLeft) MainWindow.setAutoFillBackground(True) MainWindow.setLocale(QLocale(QLocale.Persian, QLocale.Iran)) MainWindow.setIconSize(QSize(50, 50)) MainWindow.setToolButtonStyle(Qt.ToolButtonIconOnly) # Centeral self.centralwidget = QWidget(MainWindow) self.centralwidget.setObjectName(_fromUtf8("centralwidget")) # Main Frame self.MainFrame = QFrame(self.centralwidget) self.MainFrame.setGeometry(QRect(6, 6, 621, 481)) self.MainFrame.setLayoutDirection(Qt.RightToLeft) self.MainFrame.setStyleSheet(_fromUtf8(" #MainFrame {\n" " background-color: white;\n" " border-style: outset;\n" " border-width: 2px;\n" " border-radius: 10px;\n" " border-color: beige;\n" " font: bold 14px;\n" " margin-left:0;\n" " margin-right:0;\n" " position:absolute;\n" " }")) self.MainFrame.setFrameShape(QFrame.StyledPanel) self.MainFrame.setFrameShadow(QFrame.Raised) self.MainFrame.setObjectName(_fromUtf8("MainFrame")) # scan_progressBar self.scan_progressBar = QProgressBar(self.MainFrame) self.scan_progressBar.setGeometry(QRect(150, 40, 461, 31)) self.scan_progressBar.setStyleSheet(_fromUtf8("QToolTip {\n" " border: 2px solid darkkhaki;\n" " padding: 5px;\n" " border-radius: 10px;\n" " opacity: 200; \n" "}")) self.scan_progressBar.setProperty("value", 0) self.scan_progressBar.setObjectName(_fromUtf8("scan_progressBar")) # Log Frame self.LogFrame = QFrame(self.MainFrame) self.LogFrame.setGeometry(QRect(130, 76, 481, 281)) self.LogFrame.setLayoutDirection(Qt.RightToLeft) self.LogFrame.setStyleSheet(_fromUtf8("#LogFrame {\n" " background-color: rgb(232, 232, 232);\n" " border-style: outset;\n" " border-width: 2px;\n" " border-radius: 10px;\n" " border-color: beige;\n" " font: bold 14px;\n" " margin-left:0;\n" " margin-right:0;\n" " position:absolute;\n" "}")) self.LogFrame.setFrameShape(QFrame.StyledPanel) self.LogFrame.setFrameShadow(QFrame.Raised) self.LogFrame.setObjectName(_fromUtf8("LogFrame")) # Checked File List self.checkedFiles = QTextEdit(self.MainFrame) self.checkedFiles.setGeometry(QRect(142, 88, 460, 261)) self.checkedFiles.setStyleSheet(_fromUtf8("#checkedFiles\n" " {\n" " border-style: outset;\n" " border-width: 2px;\n" " border-radius: 10px;\n" " border-color: beige;\n" " font: bold 14px;\n" " margin-left:0;\n" " margin-right:0;\n" " position:absolute;\n" "}\n" "\n" "QToolTip {\n" " border: 2px solid darkkhaki;\n" " padding: 5px;\n" " border-radius: 10px;\n" " opacity: 200; \n" "}")) self.checkedFiles.setObjectName(_fromUtf8("checkedFiles")) self.checkedFiles.setReadOnly(True) # POS logo self.Pos_logo = LinkLabel('http://regin.syscare.ir/', self.MainFrame) self.Pos_logo.setGeometry(QRect(21, 286, 201, 291)) self.Pos_logo.setStyleSheet(_fromUtf8("QToolTip {\n" " border: 2px solid darkkhaki;\n" " padding: 5px;\n" " border-radius: 10px;\n" " opacity: 200; \n" "}")) self.Pos_logo.setObjectName(_fromUtf8("Pos_logo")) # Run Scanner self.RunScanner = QCommandLinkButton(self.MainFrame) self.RunScanner.setGeometry(QRect(0, 180, 131, 41)) font = QFont() font.setFamily("B Lotus") font.setPointSize(14) self.RunScanner.setFont(font) self.RunScanner.setCursor(QCursor(Qt.PointingHandCursor)) self.RunScanner.setLayoutDirection(Qt.RightToLeft) self.RunScanner.setAutoFillBackground(False) self.RunScanner.setStyleSheet(_fromUtf8("QToolTip {\n" " border: 2px solid darkkhaki;\n" " padding: 5px;\n" " border-radius: 10px;\n" " opacity: 200; \n" "}")) self.RunScanner.setObjectName(_fromUtf8("commandLinkButton")) # GitHub Logo self.GitHub_logo = LinkLabel('https://github.com/ossolution/ReginScanner', self.MainFrame) self.GitHub_logo.setGeometry(QRect(480, 280, 221, 281)) self.GitHub_logo.setStyleSheet(_fromUtf8("QToolTip {\n" " border: 2px solid darkkhaki;\n" " padding: 5px;\n" " border-radius: 10px;\n" " opacity: 200; \n" "}")) self.GitHub_logo.setObjectName(_fromUtf8("GitHub_logo")) MainWindow.setCentralWidget(self.centralwidget) self.statusbar = QStatusBar(MainWindow) self.statusbar.setObjectName(_fromUtf8("statusbar")) MainWindow.setStatusBar(self.statusbar) self.retranslateUi(MainWindow) QMetaObject.connectSlotsByName(MainWindow) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(_translate("MainWindow", "ReginScanner", None)) MainWindow.setStatusTip(_translate("MainWindow", "نرم افزار اسکن بدافزار رجین. تهیه شده توسط شرکت پیشکامان متنباز.", None)) #self.checkedFiles.setToolTip(_translate("MainWindow", "نمایش وضعیت بررسی فایلها", None)) self.MainFrame.setStatusTip(_translate("MainWindow", "نرم افزار اسکن بدافزار رجین. تهیه شده توسط شرکت پیشکامان متنباز.", None)) #self.Pos_logo.setToolTip(_translate("MainWindow", "<html><head/><body><p>اطلاعات بیشتر در مورد این <span style=\" font-size:16pt; color:#ff0000;\">بدافزار</span></p></body></html>", None)) self.Pos_logo.setText(_translate("MainWindow", "<html><head/><body><p><a href=\'http://regin.syscare.ir\'><img src=\":/img/logo.png\"/></a></p></body></html>", None)) #self.RunScanner.setToolTip(_translate("MainWindow", "شروع اسکن فایل ها", None)) self.RunScanner.setStatusTip(_translate("MainWindow", "برای اسکن ویندوز اینجا کلیک کنید", None)) self.RunScanner.setWhatsThis(_translate("MainWindow", "شروع اسکن", None)) self.RunScanner.setText(_translate("MainWindow", "شروع اسکن", None)) #self.GitHub_logo.setToolTip(_translate("MainWindow", "مشاهده و دریافت کد برنامه", None)) self.GitHub_logo.setText(_translate("MainWindow", "<html><head/><body><p><a href=\"https://github.com/ossolution/ReginScanner\"><img src=\":/img/github_icon.png\"/></a></p></body></html>", None))