class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): col = QColor(0, 0, 0) self.btn = QPushButton('Dialog - pick a colour', self) self.btn.move(20, 20) self.btn.clicked.connect(self.showDialog) self.frm = QFrame(self) self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name()) self.frm.setGeometry(20, 60, 100, 100) self.setGeometry(300, 300, 250, 380) self.setWindowTitle('Color dialog') self.show() def showDialog(self): col = QColorDialog.getColor() if col.isValid(): self.frm.setStyleSheet("QWidget { background-color: %s }" % col.name())
class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): color = QColor(0, 0, 0) self.button = QPushButton('Dialog', self) self.button.move(20, 20) self.button.clicked.connect(self.showDialog) self.frame = QFrame(self) self.frame.setStyleSheet("QWidget { background-color %s }" % color.name()) self.frame.setGeometry(130, 22, 200, 200) self.setGeometry(300, 300, 450, 350) self.setWindowTitle('Color dialog') self.show() @S**t() def showDialog(self): color = QColorDialog.getColor() if color.isValid(): self.frame.setStyleSheet("QWidget { background-color: %s}" % color.name())
class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.col = QColor(0, 0, 0) redb = QPushButton('Red', self) redb.setCheckable(True) redb.move(10, 10) redb.clicked[bool].connect(self.setColor) greenb = QPushButton('Green', self) greenb.setCheckable(True) greenb.move(10, 60) greenb.clicked[bool].connect(self.setColor) blueb = QPushButton('Blue', self) blueb.setCheckable(True) # 把这个按钮变为切换按钮(类似checkBox) blueb.move(10, 100) blueb.clicked[bool].connect(self.setColor) # True, False切换 self.square = QFrame(self) self.square.setGeometry(150, 20, 100, 100) self.square.setStyleSheet("QWidget { background-color: %s }" % self.col.name()) self.setGeometry(300, 300, 600, 400) self.setWindowTitle("Toggle button") self.show() def setColor(self, pressed): source = self.sender() if pressed: val = 255 else: val = 0 # >< 金字塔范围 # == case if source.text() == 'Red': self.col.setRed(val) elif source.text() == 'Green': self.col.setGreen(val) else: self.col.setBlue(val) self.square.setStyleSheet("QFrame { background-color: %s }" % self.col.name()) '''
class Example(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.col = QColor(0, 0, 0) redb = QPushButton('Red', self) redb.setCheckable(True) redb.move(10, 10) redb.clicked[bool].connect(self.setColor) greenb = QPushButton('Green', self) greenb.setCheckable(True) greenb.move(10, 60) greenb.clicked[bool].connect(self.setColor) blueb = QPushButton('Blue', self) blueb.setCheckable(True) blueb.move(10, 110) blueb.clicked[bool].connect(self.setColor) self.square = QFrame(self) self.square.setGeometry(150, 20, 100, 100) self.square.setStyleSheet("QWidget { background-color: %s }" % self.col.name()) self.setGeometry(300, 300, 300, 250) self.setWindowTitle('Toggle button') self.show() def setColor(self, pressed): source = self.sender() if pressed: val = 255 else: val = 0 if source.text() == "Red": self.col.setRed(val) elif source.text() == "Green": self.col.setGreen(val) else: self.col.setBlue(val) self.square.setStyleSheet("QFrame { background-color: %s }" % self.col.name())
class Dialog(QFrame): def __init__(self, widget): QFrame.__init__(self, widget) self.setGeometry(QRect(0, 0, 800, 480)) self.setStyleSheet( "font: 24pt 배달의민족 주아;" "background-color: rgba(0, 0, 0, 100);" ) self.dialog = QFrame(self) self.dialog.setGeometry(QRect(200, 120, 400, 240)) self.dialog.setStyleSheet("background-color: white;" "border-radius: 25px;")
class UiInUse: def setupUi(self, widget): widget.resize(800, 480) self.frame_main = QFrame(widget) self.frame_main.setGeometry(QRect(0, 0, 800, 480)) self.frame_main.setStyleSheet("QFrame {" " background-color: rgb(241, 168, 23);" "}" "QLabel {" " font: 20pt 배달의민족 주아;" " color: white;" "}") self.picture_piano = QLabel(self.frame_main) self.picture_piano.setGeometry(QRect(320, 30, 160, 150)) self.picture_piano.setPixmap(QPixmap(str(PATH_IMG / "Piano.png"))) self.label_time = QLabel(self.frame_main) self.label_time.setGeometry(QRect(0, 180, 800, 40)) self.label_time.setStyleSheet("font-size: 16pt;") self.label_time.setText("00:00:00") self.label_time.setAlignment(Qt.AlignCenter) self.label_name = QLabel(self.frame_main) self.label_name.setGeometry(QRect(0, 230, 800, 40)) self.label_name.setStyleSheet("font-size: 20pt;") self.label_name.setText("홍길동") self.label_name.setAlignment(Qt.AlignCenter) self.label_in_use = QLabel(self.frame_main) self.label_in_use.setGeometry(QRect(0, 270, 800, 70)) self.label_in_use.setStyleSheet("font-size: 32pt;") self.label_in_use.setText("사용 중") self.label_in_use.setAlignment(Qt.AlignCenter) self.button_quit = QPushButton(self.frame_main) self.button_quit.setGeometry(QRect(340, 360, 120, 60)) self.button_quit.setText("종료") self.button_quit.setStyleSheet("QPushButton {" " font: 20pt 배달의민족 주아;" " color: white;" " background-color: rgb(255, 0, 0);" " border-radius: 10px;" "}" "QPushButton:hover {" " color: rgb(120, 120, 120);" " background-color: rgb(120, 0, 0);" "}")
class PushButton(QWidget): def __init__(self): super().__init__() self.initUI() def initUI(self): self.color = QColor(0, 0, 0) redButton = QPushButton('红', self) redButton.setCheckable(True) #处于选中的状态 redButton.move(10, 10) redButton.clicked[bool].connect(self.setColor) greenButton = QPushButton('绿', self) greenButton.setCheckable(True) greenButton.move(10, 60) greenButton.clicked[bool].connect(self.setColor) blueButton = QPushButton('蓝', self) blueButton.setCheckable(True) blueButton.move(10, 110) blueButton.clicked[bool].connect(self.setColor) self.square = QFrame(self) self.square.setGeometry(150, 20, 100, 100) self.square.setStyleSheet('QWidget{background-color:%s}' % self.color.name()) self.setGeometry(300, 300, 280, 170) self.setWindowTitle('按钮控件') self.show() def setColor(self, pressed): source = self.sender() if pressed: val = 255 else: val = 0 if source.text() == '红': self.color.setRed(val) elif source.text() == '绿': self.color.setGreen(val) else: self.color.setBlue(val) self.square.setStyleSheet('QWidget{background-color:%s}' % self.color.name())
class MyColorDialog(QWidget): def __init__(self): QWidget.__init__(self) myColor = QColor(0, 0, 0) self.myButton = QPushButton('Press to Change Color', self) self.myButton.move(10, 50) self.myButton.clicked.connect(self.showColorDialog) self.myFrame = QFrame(self) self.myFrame.setStyleSheet("QWidget { background-color: %s }" % myColor.name()) self.myFrame.setGeometry(130, 22, 100, 100) self.setGeometry(300, 300, 250, 180) self.setWindowTitle('Color Dialog - Example') self.show() def showColorDialog(self): color = QColorDialog.getColor() if color.isValid(): self.myFrame.setStyleSheet("QWidget {background-color: % s}"% color.name())
class UiSignUp: def setupUi(self, widget): widget.resize(800, 480) self.frame_menu = QFrame(widget) self.frame_menu.setGeometry(QRect(0, 0, 800, 60)) self.frame_menu.setStyleSheet( "QLabel {" " color: white;" " background-color: rgb(249, 138, 15);" " font: 20pt 배달의민족 주아;" "}" "QPushButton {" " color: white;" " background-color: rgba(0, 0, 0, 0);" " font: 16pt 배달의민족 주아;" " border: none;" " border-radius: 16px;" "}" "QPushButton:hover {" " background-color: rgb(241, 219, 194);" "}") self.label_menu = QLabel(self.frame_menu) self.label_menu.setGeometry(QRect(0, 0, 800, 60)) self.label_menu.setText("사용자 등록") self.label_menu.setAlignment(Qt.AlignCenter) img_home = QPixmap(str(PATH_IMG / "home.png")) self.button_home = QPushButton(self.frame_menu) self.button_home.setGeometry(QRect(10, 5, 90, 50)) self.button_home.setIcon(QIcon(img_home)) self.button_home.setIconSize(QSize(40, 40)) self.button_home.setText("홈") self.frame_main = QFrame(widget) self.frame_main.setGeometry(QRect(0, 60, 800, 420)) self.frame_main.setStyleSheet( "QFrame {" " font: 20pt 배달의민족 주아;" " background-color: white;" "}" "QLineEdit {" " font: 20pt 배달의민족 주아;" " border: 3px solid black;" " border-radius: 10px;" "}" "QLineEdit:hover {" " background-color: rgb(200, 200, 200);" "}" "QLineEdit:focus {" " border-color: rgb(0, 85, 255);" "}") self.line_left = QFrame(self.frame_main) self.line_left.setGeometry(QRect(130, 50, 2, 80)) self.line_left.setFrameShape(QFrame.VLine) self.line_left.setStyleSheet( "background-color: rgb(176, 176, 176); border: none;") self.line_right = QFrame(self.frame_main) self.line_right.setGeometry(QRect(670, 50, 2, 80)) self.line_right.setFrameShape(QFrame.VLine) self.line_right.setStyleSheet( "background-color: rgb(176, 176, 176); border: none;") path_left = PATH_IMG / "arrow_left.png" path_right = PATH_IMG / "arrow_right.png" path_left_hover = PATH_IMG / "arrow_left_hover.png" path_right_hover = PATH_IMG / "arrow_right_hover.png" self.button_left = QPushButton(self.frame_main) self.button_left.setGeometry(QRect(30, 50, 80, 80)) self.button_left.setStyleSheet("QPushButton {" f" image: url({path_left});" " border: none;" "}" "QPushButton:hover {" f" image: url({path_left_hover});" "}") self.button_right = QPushButton(self.frame_main) self.button_right.setGeometry(QRect(690, 50, 80, 80)) self.button_right.setStyleSheet("QPushButton {" f" image: url({path_right});" " border: none;" "}" "QPushButton:hover {" f" image: url({path_right_hover});" "}")
class DisplayWidgetGroup(QWidget): def __init__(self, parent, id): super().__init__(parent) self.displays = [] self.groupID = id self.displayArea = parent self.minX = 1000000 self.minY = 1000000 self.maxX = 0 self.maxY = 0 self.labelFrame = QFrame(self) self.labelFrame.setFrameShape(QFrame.Box) self.labelFrame.setAutoFillBackground(True) p = self.labelFrame.palette() p.setColor(self.backgroundRole(), QColor(80, 80, 200, 20)) self.labelFrame.setPalette(p) self.label = QLabel(self.labelFrame) self.label.setText(self.groupID) self.label.setFont(QFont("arial", 32)) self.label.setAlignment(Qt.AlignCenter) self.globalBounds = [0, 0, self.width(), self.height()] self.widgetBounds = [0, 0, self.width(), self.height()] def AddDisplay(self, displayInfo): display = DisplayWidget(self, displayInfo) self.displays.append(display) dimensions = displayInfo["bounds"] self.minX = min(self.minX, dimensions[0]) self.minY = min(self.minY, dimensions[1]) self.maxX = max(self.maxX, (dimensions[2] + dimensions[0])) self.maxY = max(self.maxY, (dimensions[3] + dimensions[1])) self.labelFrame.raise_() self.UpdateDisplaysGroupBounds() def resizeEvent(self, event): self.labelFrame.setGeometry(0, 0, self.width(), self.height()) self.label.setGeometry(0, 0, self.width(), self.height()) f = QFont("ariel", self.FontSizeForWidth()) self.label.setFont(f) for display in self.displays: display.SetWidgetBounds([0, 0, self.width(), self.height()]) display.UpdateGeometry() return super().resizeEvent(event) def FontSizeForWidth(self): text = self.label.text() textSize = len(text) f = self.label.font() metrics = QFontMetrics(f) width = metrics.width(text) myWidth = self.label.width() size = 0 if width < myWidth: direction = 1 else: direction = -1 while (True): f = QFont("Ariel", size + 1) mf = QFontMetrics(f) self.label.setFont(f) width = mf.width(text) if direction > 0: if width >= myWidth: break else: if width <= myWidth: break size = f.pointSize() + direction return size def UpdateGlobalBounds(self, bounds): self.globalBounds = bounds.copy() def SetWidgetBounds(self, bounds): self.widgetBounds = bounds.copy() for display in self.displays: display.SetWidgetBounds([0, 0, self.width(), self.height()]) display.UpdateGeometry() def UpdateGeometry(self): scaleX = (self.widgetBounds[2] - self.widgetBounds[0]) / ( self.globalBounds[2] - self.globalBounds[0]) scaleY = (self.widgetBounds[3] - self.widgetBounds[1]) / ( self.globalBounds[3] - self.globalBounds[1]) posX = ( (self.minX - self.globalBounds[0]) * scaleX) + self.widgetBounds[0] posY = ( (self.minY - self.globalBounds[1]) * scaleY) + self.widgetBounds[1] width = (self.maxX - self.minX) * scaleX height = (self.maxY - self.minY) * scaleY self.setGeometry(posX, posY, width, height) def UpdateDisplaysGroupBounds(self): bounds = [ self.minX, self.minY, self.maxX - self.minX, self.maxY - self.minY ] for display in self.displays: display.SetGroupBounds(bounds) def GetGlobalOffset(self): scaleX = (self.globalBounds[2] - self.globalBounds[0]) / ( self.widgetBounds[2] - self.widgetBounds[0]) scaleY = (self.globalBounds[3] - self.globalBounds[0]) / ( self.widgetBounds[3] - self.widgetBounds[0]) posX = ((self.pos().x() - self.widgetBounds[0]) * scaleX) + self.globalBounds[0] posY = ((self.pos().y() - self.widgetBounds[1]) * scaleY) + self.globalBounds[1] return [posX, posY] def CollidesWith(self, widget): bounds = [ self.x(), self.y(), self.x() + self.width(), self.y() + self.height() ] other = [ widget.x(), widget.y(), widget.x() + widget.width(), widget.y() + widget.height() ] return not (other[0] > bounds[2] or other[2] < bounds[0] or\ other[1] > bounds[3] or other[3] < bounds[1]) def mouseMoveEvent(self, event): if self.oldPos: deltaPos = (event.globalPos() - self.oldPos) self.move(self.x() + deltaPos.x(), self.y() + deltaPos.y()) if self.displayArea.CheckCollision(self): self.move(self.x() - deltaPos.x(), self.y() - deltaPos.y()) self.oldPos = event.globalPos() return super().mouseMoveEvent(event) def mousePressEvent(self, event): self.oldPos = event.globalPos() return super().mousePressEvent(event) def mouseReleaseEvent(self, event): self.oldPos = None return super().mouseReleaseEvent(event)
class Artigence(QMainWindow): def __init__(self): super(Artigence, self).__init__() # Basic Settings self.setGeometry(300, 200, 682, 422) self.setMinimumSize(QSize(682, 422)) self.setMaximumSize(QSize(682, 422)) self.setWindowIcon(QIcon("arti.PNG")) self.setWindowTitle("Artigence Home") # Color Scheme self.palette = QPalette() self.palette.setColor(self.palette.Window, QColor('#000000')) self.palette.setColor(self.palette.WindowText, QColor('#FFFFFF')) self.setPalette(self.palette) self.light_palette = QPalette() self.light_palette.setColor(self.light_palette.Window, QColor('#FFFFFF')) self.light_palette.setColor(self.light_palette.WindowText, QColor('#000000')) # Setting MenuBar self.menubar = QMenuBar(self) self.menubar.setGeometry(0, 0, 682, 21) self.date_menu = QMenu(self.menubar) self.date_menu.setTitle(str(datetime.now().strftime('%d-%m-%Y'))) self.theme_menu = QMenu(self.menubar) self.theme_menu.setTitle('Theme') self.dark_theme = QAction('Dark Theme') self.dark_theme.setShortcut(QKeySequence('Ctrl+Shift+D')) self.theme_menu.addAction(self.dark_theme) self.dark_theme.triggered.connect(lambda: self.dark()) self.light_theme = QAction('Light Theme') self.light_theme.setShortcut(QKeySequence('Ctrl+Shift+L')) self.theme_menu.addAction(self.light_theme) self.light_theme.triggered.connect(lambda: self.light()) self.app_menu = QMenu(self.menubar) self.app_menu.setTitle('Apps') self.calculator_menu = QAction('Calculator') self.calculator_menu.setShortcut(QKeySequence('Alt+C')) self.app_menu.addAction(self.calculator_menu) self.calculator_menu.triggered.connect(lambda: self.calculator_func()) self.game_menu = QAction('GameHub') self.game_menu.setShortcut(QKeySequence('Alt+G')) self.app_menu.addAction(self.game_menu) self.game_menu.triggered.connect(lambda: self.games_func()) self.music_menu = QAction('Muse (Music)') self.music_menu.setShortcut(QKeySequence('Alt+M')) self.app_menu.addAction(self.music_menu) self.music_menu.triggered.connect(lambda: self.music_func()) self.news_menu = QAction('News') self.news_menu.setShortcut(QKeySequence('Alt+E')) self.app_menu.addAction(self.news_menu) self.news_menu.triggered.connect(lambda: self.news_func()) self.notepad_menu = QAction('Notepad') self.notepad_menu.setShortcut(QKeySequence('Alt+N')) self.app_menu.addAction(self.notepad_menu) self.notepad_menu.triggered.connect(lambda: self.notepad_func()) self.pronunciator = QAction('Pronunciator') self.pronunciator.setShortcut(QKeySequence('Alt+P')) self.app_menu.addAction(self.pronunciator) self.pronunciator.triggered.connect(lambda: self.pronunciator_func()) self.translate_menu = QAction('Translate') self.translate_menu.setShortcut(QKeySequence('Alt+T')) self.app_menu.addAction(self.translate_menu) self.translate_menu.triggered.connect(lambda: self.translate_func()) self.weather_menu = QAction('Weather') self.weather_menu.setShortcut(QKeySequence('Alt+W')) self.app_menu.addAction(self.weather_menu) self.weather_menu.triggered.connect(lambda: self.weather_func()) self.setMenuBar(self.menubar) self.menubar.addAction(self.date_menu.menuAction()) self.menubar.addAction(self.theme_menu.menuAction()) self.menubar.addAction(self.app_menu.menuAction()) # Creating Widgets self.query = QLineEdit(self) self.query.setGeometry(QRect(20, 30, 451, 41)) self.query.setMinimumSize(QSize(451, 41)) self.query.setMaximumSize(QSize(451, 41)) self.query.setPlaceholderText("Enter your Query Here:") self.query.setFont(QFont('Roboto', 16)) self.query.setClearButtonEnabled(True) self.update = QPushButton(self) self.update.setGeometry(QRect(491, 30, 171, 41)) self.update.setMinimumSize(QSize(1, 1)) self.update.setMaximumSize(QSize(171, 51)) self.update.setText("What's New in the Updates?") self.update.setCursor(QCursor(Qt.PointingHandCursor)) self.suggestions = QLabel(self) self.suggestions.setGeometry(QRect(20, 220, 111, 31)) self.suggestions.setMinimumSize(QSize(111, 31)) self.suggestions.setMaximumSize(QSize(111, 31)) self.suggestions.setText("Suggestions:") self.suggestions.setFont(QFont('Roboto', 14)) self.chrome = QPushButton(self) self.chrome.setGeometry(QRect(20, 260, 91, 31)) self.chrome.setCursor(QCursor(Qt.PointingHandCursor)) self.chrome.setText('Open Chrome') self.games = QPushButton(self) self.games.setGeometry(QRect(420, 260, 91, 31)) self.games.setCursor(QCursor(Qt.PointingHandCursor)) self.games.setText('Games') self.cmd = QPushButton(self) self.cmd.setGeometry(QRect(160, 260, 91, 31)) self.cmd.setCursor(QCursor(Qt.PointingHandCursor)) self.cmd.setText('Open Cmd') self.joke = QPushButton(self) self.joke.setGeometry(QRect(160, 310, 91, 31)) self.joke.setCursor(QCursor(Qt.PointingHandCursor)) self.joke.setText('Joke Please!!') self.music = QPushButton(self) self.music.setGeometry(QRect(290, 260, 91, 31)) self.music.setCursor(QCursor(Qt.PointingHandCursor)) self.music.setText('Music') self.youtube = QPushButton(self) self.youtube.setGeometry(QRect(290, 310, 91, 31)) self.youtube.setCursor(QCursor(Qt.PointingHandCursor)) self.youtube.setText('Youtube') self.time = QPushButton(self) self.time.setGeometry(QRect(20, 310, 91, 31)) self.time.setCursor(QCursor(Qt.PointingHandCursor)) self.time.setText('Tell Time') self.weather = QPushButton(self) self.weather.setGeometry(QRect(420, 310, 91, 31)) self.weather.setCursor(QCursor(Qt.PointingHandCursor)) self.weather.setText('Weather') self.calculator = QPushButton(self) self.calculator.setGeometry(QRect(550, 260, 101, 31)) self.calculator.setCursor(QCursor(Qt.PointingHandCursor)) self.calculator.setText('Calculator') self.wikipedia = QPushButton(self) self.wikipedia.setGeometry(QRect(550, 310, 101, 31)) self.wikipedia.setCursor(QCursor(Qt.PointingHandCursor)) self.wikipedia.setText('India Wikipedia') self.news = QPushButton(self) self.news.setGeometry(QRect(20, 360, 91, 31)) self.news.setCursor(QCursor(Qt.PointingHandCursor)) self.news.setText('Latest News') self.meaning = QPushButton(self) self.meaning.setGeometry(QRect(420, 360, 231, 31)) self.meaning.setCursor(QCursor(Qt.PointingHandCursor)) self.meaning.setText('Meaning of Obsolete (or any word)') self.harry_potter = QPushButton(self) self.harry_potter.setGeometry(QRect(290, 360, 91, 31)) self.harry_potter.setCursor(QCursor(Qt.PointingHandCursor)) self.harry_potter.setText('Harry Potter') self.translate = QPushButton(self) self.translate.setGeometry(QRect(160, 360, 91, 31)) self.translate.setCursor(QCursor(Qt.PointingHandCursor)) self.translate.setText('Open Translate') self.line = QFrame(self) self.line.setGeometry(QRect(20, 200, 661, 16)) self.line.setFrameShape(QFrame.HLine) self.line.setFrameShadow(QFrame.Sunken) self.label = QLabel(self) self.label.setGeometry(QRect(20, 100, 631, 91)) self.label.setFont(QFont('Roboto', 12)) self.label.setTextFormat(Qt.AutoText) self.label.setWordWrap(True) self.wish() # Making the Widgets Functional self.query.returnPressed.connect(lambda: self.on_enter()) self.query.returnPressed.connect(lambda: self.clear_text()) self.update.clicked.connect(lambda: self.update_func()) self.music.clicked.connect(lambda: self.music_func()) self.games.clicked.connect(lambda: self.games_func()) self.calculator.clicked.connect(lambda: self.calculator_func()) self.weather.clicked.connect(lambda: self.weather_func()) self.news.clicked.connect(lambda: self.news_func()) self.translate.clicked.connect(lambda: self.translate_func()) self.time.clicked.connect(lambda: self.time_func()) self.joke.clicked.connect(lambda: self.joke_func()) self.youtube.clicked.connect(lambda: self.youtube_func()) self.wikipedia.clicked.connect(lambda: self.wikipedia_func()) self.chrome.clicked.connect(lambda: self.chrome_func()) self.cmd.clicked.connect(lambda: self.cmd_func()) self.meaning.clicked.connect(lambda: self.meaning_func()) self.harry_potter.clicked.connect(lambda: self.potter_func()) def pronunciator_func(self): self.speak('Opening Pronunciator') from pronunciator import Pronunciator self.pronunciator_win = Pronunciator() self.pronunciator_win.show() def pong_func(self): import pong def notepad_func(self): self.speak('Opening Notepad') from notepad import Notepad self.notepad_win = Notepad() self.notepad_win.show() def update_func(self): os.startfile('Each Version Updates.txt') def translate_func(self): self.speak( 'Opening Translate\nPlease Wait as opening Translate may take up to 4-5 seconds' ) from translate import Translate self.translate_win = Translate() self.translate_win.show() def games_func(self): self.speak('Opening GameHub') from games import GameHub self.game_win = GameHub() self.game_win.show() def weather_func(self): self.speak('Opening Weather.') from weather import Weather self.weather_win = Weather() self.weather_win.show() def music_func(self): self.speak('Opening Muse') from music import Music self.music_win = Music() self.music_win.show() def calculator_func(self): self.speak('Opening Calculator.') from calculator import Calculator self.calculator_win = Calculator() self.calculator_win.show() def news_func(self): self.speak('Opening News.') from news import News self.news_win = News() self.news_win.show() self.speak( 'Welcome to News.\nThese are the latest international headlines according to BBC News Network.' ) def chrome_func(self): try: chrome_path = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe' os.startfile(chrome_path) self.speak('Opening Chrome.') except Exception: self.speak( 'No Google Chrome installation found on the host device.') def cmd_func(self): cmd_path = 'C:\\Windows\\system32\\cmd.exe' os.startfile(cmd_path) self.speak('Opening Command Prompt.') def time_func(self): question = 'time' app_id = 'LLQ4QY-A7K3LEL4T8' client = wolframalpha.Client(app_id) res = client.query(question) answer = next(res.results).text self.speak(answer) def joke_func(self): self.speak(pyjokes.get_joke()) def youtube_func(self): webbrowser.open('https://www.youtube.com') self.speak('Opening Youtube.') def wikipedia_func(self): try: self.speak('Searching Wikipedia. Please Wait...') query = 'India'.replace('wikipedia', '') result = wikipedia.summary(query, sentences=1) self.speak('According to Wikipedia...') self.speak(result) except Exception as e: self.speak(e) def meaning_func(self): question = 'obsolete' app_id = 'LLQ4QY-A7K3LEL4T8' client = wolframalpha.Client(app_id) res = client.query(question) answer = next(res.results).text self.speak(answer) def potter_func(self): new = 2 google_url = "http://google.com/?#q=" webbrowser.open(google_url + 'Harry Potter', new=new) def clear_text(self): self.query.clear() def on_enter(self): user_query = self.query.text().lower() if 'wikipedia' in user_query: try: self.speak('Searching Wikipedia. Please Wait...') user_query = user_query.replace('wikipedia', '') result = wikipedia.summary(user_query, sentences=1) self.speak('According to Wikipedia...') self.speak(result) except Exception as e: self.speak('Please try again later.') self.speak(e) elif 'youtube' in user_query: webbrowser.open('https://www.youtube.com') self.speak('Opening Youtube.') elif 'google' in user_query: webbrowser.open('https://www.google.com/') self.speak('Opening Google.') elif 'chrome' in user_query: # You'll have to download google chrome first on your desktop/pc. try: chrome_path = 'C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe' os.startfile(chrome_path) self.speak('Opening Chrome') except Exception: self.speak( 'No Google Chrome installation found on the host device.') elif 'cmd' in user_query: cmd_path = 'C:\\Windows\\system32\\cmd.exe' os.startfile(cmd_path) self.speak('Opening Command Prompt.') elif 'control panel' in user_query: cp_path = 'C:\\Windows\\system32\\control.exe' os.startfile(cp_path) self.speak('Opening Control Panel.') elif 'bye' in user_query or 'goodbye' in user_query or 'good night' in user_query or 'see you later' in user_query: self.speak(random.choice(self.bye)) sys.exit() elif 'hello' in user_query or 'hi' in user_query: self.speak(random.choice(self.hello)) elif 'joke' in user_query: self.speak(pyjokes.get_joke()) elif 'who are you' in user_query: self.speak('I am Artigence, your artificial intelligence.') elif 'map' in user_query or 'maps' in user_query: self.speak('Opening Google Maps.') webbrowser.open("https://www.google.com/maps") elif 'open calculator' in user_query or 'calculator' in user_query: self.calculator_func() elif 'news' in user_query: self.news_func() self.speak( 'Welcome to News.\nThese are the latest international headlines according to BBC News Network.' ) elif 'weather' in user_query: self.weather_func() elif 'games' in user_query: self.games_func() elif 'pronunciator' in user_query or 'pronounce' in user_query: self.pronunciator_func() elif 'translate' in user_query: self.translate_func() elif 'music' in user_query: self.music_func() elif 'notepad' in user_query: self.notepad_func() else: try: question = user_query app_id = 'LLQ4QY-A7K3LEL4T8' client = wolframalpha.Client(app_id) res = client.query(question) answer = next(res.results).text self.label.setText(answer) self.label.adjustSize() except: new = 2 google_url = "http://google.com/?#q=" query = user_query webbrowser.open(google_url + query, new=new) # The A.I. will speak through this function def speak(self, audio): self.engine = pyttsx3.init('sapi5') voices = self.engine.getProperty('voices') self.engine.setProperty('voice', voices[1].id) self.engine.setProperty('rate', 165) self.label.setText(audio) self.engine.say(audio) self.engine.runAndWait() self.label.clear() def wish(self): hour = int(datetime.now().hour) if 0 <= hour < 12: self.speak('Good Morning.') elif 12 <= hour < 18: self.speak('Good Afternoon.') else: self.speak('Good Evening.') self.speak('I am Artigence.') self.speak('How may I help you today') hello = ['Kon\'nichiwa', 'Ciao', 'Hola', 'Bonjour', 'Hello', 'Hi', 'Hiya'] bye = [ 'Adios', 'Goodbye', 'Bye-Bye', 'See you next time.', 'Artigence Out.', 'It was nice talking to you sir. Have a nice day.' ] def dark(self): self.setPalette(self.palette) def light(self): self.setPalette(self.light_palette)
class ExtraWindow(QtWidgets.QDialog): def __init__(self, parent, edit=False, path_c=None): super().__init__(parent) self.meta = None if edit: self.path_c = path_c self.meta = MetaDataR(self.path_c.get_metadata_path()) else: self.path_c = None self.meta = _make_blank_metadata() #self.path_c = f'podaci{os.path.sep}__podaci\saimenom.csv #self.load_data("podaci\naziv_tabele.json") #print(self.meta) #print(self.path_c) #self.path_c = f'podaci{os.path.sep}__' tu treba da bude ono sto je korisnik nazvao tabelu,podaci\studenti # napraviti funkciju koja proverava da li su dve putanje iste is_save postoji #napraviti funkciju koja prolazi kroz odabrani folder(podaci) hard cod i za svaki file u njemu proverava # da li je isti kao fajl koji smo kreirali self.extra_table = ExtraTable(self) #self.extra_table.cellClicked.connect(self.extra_table.current_column_name) self.setWindowTitle("customer - Table") self.setWindowIcon(QtGui.QIcon("assets/img/icons8-edit-file-64.png")) self.resize(662, 438) self.save_table_changes = QPushButton("Save table changes", self) self.save_table_changes.setGeometry(390, 290, 251, 31) self.add_table_main = QPushButton("Add Column ", self) self.add_table_main.setGeometry(390, 260, 251, 28) self.add_table_main.clicked.connect(self.add_column) self.delet_table_column = QPushButton("Delet table column", self) self.delet_table_column.setGeometry(390, 330, 251, 31) self.delet_table_column.clicked.connect(self.remove_row) self.not_null_box = QCheckBox("Not Null", self) self.not_null_box.setGeometry(220, 330, 81, 61) self.colm_name_label = QLabel("Column Name:", self) self.colm_name_label.setGeometry(10, 250, 111, 41) self.table_name_label_2 = QLabel("Table Name", self) self.table_name_label_2.setGeometry(10, 10, 91, 21) self.comn_name_line_edit = QLineEdit(self) self.comn_name_line_edit.setGeometry(110, 260, 151, 22) #self.comn_name_line_edit.clicked.connect(self.extra_table.current_column_name) self.data_type_label = QLabel("Data Type", self) self.data_type_label.setGeometry(10, 300, 61, 16) self.data_type_line_edit = QLineEdit(self) self.data_type_line_edit.setGeometry(110, 300, 151, 22) self.table_name_line_edit = QLineEdit(self) self.table_name_line_edit.setGeometry(110, 10, 391, 22) self.foreign_key_box = QCheckBox("Foreign Key", self) self.foreign_key_box.setGeometry(120, 330, 91, 61) self.primary_key_box = QCheckBox("Primary Key", self) self.primary_key_box.setGeometry(20, 330, 111, 61) self.frame = QFrame(self) self.frame.setGeometry(0, 390, 661, 51) self.frame.setStyleSheet(u"background-color: rgb(45,45,45);") self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.cancel_button = QPushButton("Cancel button", self.frame) self.cancel_button.setGeometry(550, 10, 111, 28) self.cancel_button.setStyleSheet( u"background-color: rgb(255,255,255);") self.add_table_button = QPushButton("Add table", self.frame) self.add_table_button.setGeometry(442, 10, 101, 28) self.add_table_button.setStyleSheet( u"background-color: rgb(255,255,255);") #self.tables() self.show() def add_column_infomation(self): self.meta["headers"].append({ "name": self.comn_name_line_edit.text(), "is_primary": self.primary_key_box.isChecked(), "is_foreign_key": self.foreign_key_box.isChecked(), "data_type": self.data_type_line_edit.text(), "predefined_values": "nesta", "not_null": self.not_null_box.isChecked(), }) #iz tabele treba da se poziva row sa tim podacima def current_row(self): return self.extra_table.currentRow() #save column changes #kada korisnik kilkne na kolonu koja vec postoji nje podaci treba da se otvore u # input poljima ako je korisnik stavio neku izmjenu u tim poljima u tabeli treba da se sacuvaju te izmene #funkcija koja ce za objekat iz metaheadersa da ubacuje u tabelu def add_column(self): self.add_column_infomation() #headers = self.get_headers_names() row = self.extra_table.rowCount() self.extra_table.insertRow(row) #print(headers) self.extra_table.setItem( row, 0, QtWidgets.QTableWidgetItem(str(self.meta["headers"][row]["name"]))) self.extra_table.setItem( row, 1, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["data_type"]))) self.extra_table.setItem( row, 2, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["is_primary"]))) self.extra_table.setItem( row, 3, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["is_foreign_key"]))) self.extra_table.setItem( row, 4, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["not_null"]))) self.extra_table.setItem( row, 5, QtWidgets.QTableWidgetItem( str(self.meta["headers"][row]["predefined_values"]))) #proveri da li su sve vrednosti stavljenje name i type # moram da ucitam blanko podatke koji su prazni nemaju nista, # preko putanje hard kodovati prilikom sava def remove_row(self): indexes = self.extra_table.selectionModel().selectedRows() if len(indexes) != 1: self.show_popup() return self.extra_table.removeRow(indexes[0].row()) def show_popup(self): msg = QMessageBox() msg.setWindowTitle("Fatal Error") msg.setText("Post Error! error code = 503") msg.setIcon(QMessageBox.Critical) msg.setStandardButtons(QMessageBox.Ok) msg.setInformativeText("Pleas select a row you want to delet!") msg.buttonClicked.connect(self.popup_button) execute = msg.exec_() def popup_button(self, i): print(i.text())
class PreprocessingImageWindow(QMainWindow): def close_application(self): """ This function close the window. """ sys.exit() def save(self) : self.dico = saveColumn1Dataset (self.dataset_path) saveColumn2Dataset (self.training_data, self.dico, self.file_name) def showTable(self): """ This function display the corresponding matrix to an image """ self.tableWidget.setVisible (True) if hasattr (self, 'image') : self.image.setVisible (False) self.pushButton_table.setEnabled (False) self.pushButton_next.setEnabled(True) global index_data_pre self.frame_3.setGeometry (QtCore.QRect (10, 180, 1000, 450)) self.tableWidget.setRowCount(int (globals.height_m)) self.tableWidget.setColumnCount(int (globals.length_m)) matrix_image, id_class = self.training_data[globals.index_data_pre] for i, row in enumerate (matrix_image) : for j, val in enumerate (row) : self.tableWidget.setItem (i, j, QTableWidgetItem (str (val))) def preprocess(self): """ This function preprocess an image dataset. """ if self.dataset_path != None : if self.input_length.text() == "0" or self.input_length.text() == "": self.input_length.setText("30") if self.input_height.text() == "0" or self.input_height.text() == "": self.input_height.setText("30") # Setting values for matrix sizes global length_m global height_m globals.length_m = int(self.input_length.text()) globals.height_m = int(self.input_height.text()) ## Preprocessing global input_array global output_array f = open(self.dataset_path,'r') categories = list() f.readline() for ligne in f.readlines() : var=ligne.strip().split(',') classe=var[1] #class if classe not in categories : categories.append(classe) self.training_data = Preprocessing (self.dataset_path, self.file_path) for i in range (len (self.training_data)) : matrix, id_class = self.training_data[i] globals.input_array.append (matrix) globals.output_array.append (categories[id_class]) self.start.setEnabled (False) self.input_height.setEnabled(False) self.input_length.setEnabled (False) self.pushButton_table.setEnabled (True) self.pushButton_save.setEnabled (True) def open_dataset (self) : """ This function looks for the csv file and initializes the Window attributes. """ global dataset_name dlg = QFileDialog() dlg.setFileMode(QFileDialog.AnyFile) dlg.selectNameFilter("Csv data files (*.csv)") dlg.setNameFilter("Arff data files (*.arff) ;; Csv data files (*.csv) ;; All files (*.*)") filenames = [] if dlg.exec_(): filenames = dlg.selectedFiles() f = open(filenames[0], 'r') self.dataset_path = str(filenames[0]) with f: self.textEdit.setText(filenames[0].split('/')[-1]) self.file_name = filenames[0].split('/')[-1].split('.')[0] if self.dataset_path != None : self.file_path = os.path.dirname(self.dataset_path) + globals.directory globals.dataset_name = self.file_name ## RESET global input_height global input_length global index_data global index_data_pre global input_array global output_array globals.input_height = 0 globals.input_length = 0 globals.index_data = 0 globals.index_data_pre = 0 globals.input_array = [] globals.output_array = [] self.frame_3.setGeometry(QtCore.QRect(10, 180, 1000, 450)) self.pushButton_next.setEnabled (False) self.pushButton_previous.setEnabled (False) self.start.setEnabled (False) self.valider.setEnabled(True) self.pushButton_save.setEnabled (False) self.pushButton_table.setEnabled (False) if hasattr (self, 'tableWidget') : self.tableWidget.setVisible (False) if hasattr (self, 'image') : self.image.setVisible (False) def get_dataset_information(self): """ This function gets information about the dataset such as the number of instances and the number of classes. """ text="Nombre d'instances: "+str(get_number_instances(self.dataset_path)) self.label_instances.setText(text) text = "Nombre de classes: " + str (get_number_class (self.dataset_path)) self.label_classes.setText(text) self.input_height.setEnabled(True) self.input_length.setEnabled(True) self.valider.setEnabled (False) self.start.setEnabled(True) self.pushButton_next.setEnabled (True) if hasattr (self, 'training_data') : self.pushButton_table.setEnabled (True) self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450)) if not hasattr (self, 'image') : self.image = QLabel (self.frame_3) self.image.setGeometry (QtCore.QRect (0,0,500, 450)) self.image.setObjectName ("image") image_list = [] global index_data csv_file = open (self.dataset_path, "r") csv_file.readline() for line in csv_file.readlines() : var = line.strip().split(',') image_list.append (var[0]) csv_file.close() self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450)) self.image.show() def previous_state(self): """ This function returns to the previous instance in the dataset. """ global index_data global index_data_pre if self.pushButton_table.isEnabled() or not hasattr(self, 'training_data'): if globals.index_data - 1 >= 0 : globals.index_data -= 1 if globals.index_data - 1 < 0: self.pushButton_next.setEnabled(True) self.pushButton_previous.setEnabled(False) else : if globals.index_data_pre - 1 >= 0 : globals.index_data_pre -= 1 if globals.index_data_pre - 1 < 0: self.pushButton_next.setEnabled(True) self.pushButton_previous.setEnabled(False) if not self.valider.isEnabled () and not hasattr(self, "training_data"): if hasattr (self, 'training_data') and self.start.isEnabled(): self.pushButton_table.setEnabled(False) elif hasattr (self, 'training_data') : self.pushButton_table.setEnabled (True) self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450)) if not hasattr (self, 'image') : self.image = QLabel (self.frame_3) self.image.setGeometry (QtCore.QRect (0,0,500, 450)) self.image.setObjectName ("image") image_list = [] global index_data csv_file = open (self.dataset_path, "r") csv_file.readline() for line in csv_file.readlines() : var = line.strip().split(',') image_list.append (var[0]) csv_file.close() self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450)) self.image.show() else : self.showTable() def next_state(self): """ This function goes to the next instance in the dataset. """ global index_data global index_data_pre if self.pushButton_table.isEnabled() or not hasattr( self, 'training_data' ): # Image Mode if globals.index_data + 1 < get_number_instances (self.dataset_path): globals.index_data += 1 if globals.index_data + 1 >= get_number_instances(self.dataset_path): self.pushButton_next.setEnabled(False) self.pushButton_previous.setEnabled(True) else : if globals.index_data_pre + 1 < get_number_instances (self.dataset_path) * 2: globals.index_data_pre += 1 if globals.index_data_pre + 1 >= get_number_instances(self.dataset_path): self.pushButton_next.setEnabled(False) self.pushButton_previous.setEnabled(True) if not self.valider.isEnabled () and not hasattr (self, "training_data"): if hasattr (self, 'training_data') and self.start.isEnabled(): self.pushButton_table.setEnabled(False) elif hasattr (self, 'training_data') : self.pushButton_table.setEnabled (True) self.frame_3.setGeometry (QtCore.QRect (250, 180, 500, 450)) if not hasattr (self, 'image') : self.image = QLabel (self.frame_3) self.image.setGeometry (QtCore.QRect (0,0,500, 450)) self.image.setObjectName ("image") image_list = [] global index_data csv_file = open (self.dataset_path, "r") csv_file.readline() for line in csv_file.readlines() : var = line.strip().split(',') image_list.append (var[0]) csv_file.close() self.image.setPixmap (QtGui.QPixmap (self.file_path + image_list[globals.index_data]).scaled (500, 450)) self.image.show() else : self.showTable () ## GUI def __init__(self, *args, **kwargs): super(PreprocessingImageWindow, self).__init__(*args, **kwargs) self.file_path = None self.file_name = None self.dataset_path = None self.setObjectName("self") self.resize(1280, 720) self.setAutoFillBackground(True) self.setFixedSize(1280, 720) self.centralwidget = QWidget(self) self.centralwidget.setAutoFillBackground(True) self.centralwidget.setObjectName("centralwidget") self.gridLayout = QGridLayout(self.centralwidget) self.gridLayout.setObjectName("gridLayout") self.tabWidget = QTabWidget(self.centralwidget) self.tabWidget.setAutoFillBackground(True) self.tabWidget.setObjectName("tabWidget") ## INFO BOX: self.tab1 = QWidget() self.tab1.setAutoFillBackground(True) self.tab1.setObjectName("tab1") self.frame = QFrame(self.tab1) self.frame.setGeometry(QtCore.QRect(10, 60, 1000, 111)) self.frame.setAutoFillBackground(True) self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.frame.setObjectName("frame") self.label_2 = QLabel(self.frame) self.label_2.setGeometry(QtCore.QRect(11, 10, 184, 17)) font = QtGui.QFont() font.setItalic(True) self.label_2.setFont(font) self.label_2.setObjectName("label_2") self.widget = QWidget(self.frame) self.widget.setGeometry(QtCore.QRect(100, 30, 301, 65)) self.widget.setObjectName("widget") self.verticalLayout = QVBoxLayout(self.widget) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.verticalLayout.setObjectName("verticalLayout") self.label_instances = QLabel(self.widget) self.label_instances.setObjectName("label_instances") self.verticalLayout.addWidget(self.label_instances) self.label_classes = QLabel(self.widget) self.label_classes.setObjectName("label_classes") self.verticalLayout.addWidget(self.label_classes) ## Frame 2 PARAMETERS self.frame_2 = QFrame(self.tab1) self.frame_2.setGeometry(QtCore.QRect(1030, 60, 211, 261)) self.frame_2.setAutoFillBackground(True) self.frame_2.setFrameShape(QFrame.StyledPanel) self.frame_2.setFrameShadow(QFrame.Raised) self.frame_2.setObjectName("frame_2") self.toolBox = QToolBox(self.frame_2) self.toolBox.setGeometry(QtCore.QRect(10, 40, 191, 151)) self.toolBox.setObjectName("toolBox") self.page_resize = QWidget() self.page_resize.setGeometry(QtCore.QRect(100, 0, 191, 89)) self.page_resize.setObjectName("page_resize") self.layoutWidget = QWidget(self.page_resize) self.layoutWidget.setGeometry(QtCore.QRect(0, 0, 188, 52)) self.layoutWidget.setObjectName("layoutWidget") self.verticalLayout_2 = QVBoxLayout(self.layoutWidget) self.verticalLayout_2.setContentsMargins(0, 0, 0, 0) self.verticalLayout_2.setObjectName("verticalLayout_2") self.form = QFormLayout () self.input_length = QLineEdit() self.input_length.setValidator (QtGui.QIntValidator()) self.input_length.setObjectName("Choose_length") self.verticalLayout_2.addWidget(self.input_length) self.input_length.setEnabled (False) self.input_height = QLineEdit() self.input_height.setValidator (QtGui.QIntValidator()) self.input_height.setObjectName("Choose_height") self.verticalLayout_2.addWidget(self.input_height) self.input_height.setEnabled (False) self.form.addRow ("Length :", self.input_length) self.start = QPushButton(self.frame_2) self.start.setObjectName("pushButton_start") self.verticalLayout_2.addWidget(self.start) self.page_resize.setLayout (self.form) self.form.addRow ("height :", self.input_height) self.form.addRow (self.start) self.input_length.setText ("40") self.input_height.setText ("40") self.toolBox.addItem(self.page_resize, "") self.label_3 = QLabel(self.frame_2) self.label_3.setGeometry(QtCore.QRect(10, 10, 181, 17)) font = QtGui.QFont() font.setItalic(True) self.label_3.setFont(font) self.label_3.setObjectName("label_3") ## Frame 3 DISPLAY self.frame_3 = QFrame(self.tab1) self.frame_3.setGeometry(QtCore.QRect(10, 180, 1000, 450)) self.frame_3.setAutoFillBackground(True) self.frame_3.setFrameShape(QFrame.StyledPanel) self.frame_3.setFrameShadow(QFrame.Raised) self.frame_3.setObjectName("frame_3") ## Display matrix self.tableWidget = QTableWidget(self.frame_3) self.tableWidget.setGeometry(QtCore.QRect(0, 0, 1000, 450)) self.tableWidget.setAutoFillBackground(True) self.tableWidget.setObjectName("tableWidget") self.tableWidget.setColumnCount(0) self.tableWidget.setRowCount(0) ## Frame 4 VISUALIZATION self.frame_4 = QFrame(self.tab1) self.frame_4.setGeometry(QtCore.QRect(1030, 330, 211, 191)) self.frame_4.setFrameShape(QFrame.StyledPanel) self.frame_4.setFrameShadow(QFrame.Raised) self.frame_4.setObjectName("frame_4") ## BUTTON FOR VISUALIZATION self.pushButton_previous= QPushButton(self.frame_4) self.pushButton_previous.setGeometry(QtCore.QRect(50, 40, 121, 41)) self.pushButton_previous.setIconSize(QtCore.QSize(30, 30)) self.pushButton_previous.setAutoDefault(False) self.pushButton_previous.setDefault(False) self.pushButton_previous.setFlat(False) self.pushButton_previous.setObjectName("pushButton_previous") self.pushButton_next = QPushButton(self.frame_4) self.pushButton_next.setGeometry(QtCore.QRect(50, 85, 121, 41)) self.pushButton_next.setObjectName("pushButton_next") self.pushButton_table = QPushButton (self.frame_4) self.pushButton_table.setGeometry (QtCore.QRect (50, 130, 121, 41)) self.pushButton_table.setObjectName ("pushButton_table") ## SAVE self.frame_5 = QFrame(self.tab1) self.frame_5.setGeometry(QtCore.QRect(1080, 550, 121, 41)) self.frame_5.setFrameShape(QFrame.StyledPanel) self.frame_5.setFrameShadow(QFrame.Raised) self.frame_5.setObjectName("frame_5") self.pushButton_save = QPushButton (self.frame_5) self.pushButton_save.setGeometry (QtCore.QRect (0, 0, 121, 41)) self.pushButton_save.setObjectName ("pushButton_save") ## RETURN BUTTON self.frame_6 = QFrame(self.tab1) self.frame_6.setGeometry(QtCore.QRect(1080, 10, 121, 41)) self.frame_6.setFrameShape(QFrame.StyledPanel) self.frame_6.setFrameShadow(QFrame.Raised) self.frame_6.setObjectName("frame_6") self.pushButton_return = QPushButton (self.frame_6) self.pushButton_return.setGeometry (QtCore.QRect (0, 0, 121, 41)) self.pushButton_return.setObjectName ("pushButton_return") self.label_4 = QLabel(self.frame_4) self.label_4.setGeometry(QtCore.QRect(10, 10, 111, 17)) font = QtGui.QFont() font.setItalic(True) self.label_4.setFont(font) self.label_4.setObjectName("label_4") self.layoutWidget2 = QWidget(self.tab1) self.layoutWidget2.setGeometry(QtCore.QRect(10, 20, 611, 31)) self.layoutWidget2.setObjectName("layoutWidget2") self.horizontalLayout = QHBoxLayout(self.layoutWidget2) self.horizontalLayout.setContentsMargins(0, 0, 0, 0) self.horizontalLayout.setObjectName("horizontalLayout") self.label = QLabel(self.layoutWidget2) font = QtGui.QFont() font.setItalic(True) self.label.setFont(font) self.label.setObjectName("label") self.horizontalLayout.addWidget(self.label) self.textEdit = QTextEdit(self.layoutWidget2) self.textEdit.setObjectName("textEdit") self.horizontalLayout.addWidget(self.textEdit) self.toolButton = QToolButton(self.layoutWidget2) self.toolButton.setObjectName("toolButton") self.horizontalLayout.addWidget(self.toolButton) self.valider = QPushButton(self.layoutWidget2) self.valider.setObjectName("valider") self.horizontalLayout.addWidget(self.valider) self.tabWidget.addTab(self.tab1, "") self.gridLayout.addWidget(self.tabWidget, 0, 1, 1, 1) self.setCentralWidget(self.centralwidget) self.lbl = QLabel(self.frame_3) self.lbl.setGeometry(QtCore.QRect(10, 180, 0, 381)) ## ACTIVATED OR NOT self.tableWidget.setVisible(False) self.pushButton_next.setEnabled(False) self.pushButton_previous.setEnabled(False) self.valider.setEnabled(False) self.start.setEnabled(False) self.pushButton_table.setEnabled (False) self.pushButton_save.setEnabled (False) self.toolButton.clicked.connect(self.open_dataset) self.start.clicked.connect(self.preprocess) self.pushButton_previous.clicked.connect(self.previous_state) self.pushButton_next.clicked.connect(self.next_state) self.valider.clicked.connect (self.get_dataset_information) self.pushButton_table.clicked.connect (self.showTable) self.pushButton_save.clicked.connect (self.save) p = QtGui.QPalette() p.setColor(QtGui.QPalette.Window, QtGui.QColor(133,132,130)) p.setColor(QtGui.QPalette.Button, QtGui.QColor(153,150,150)) p.setColor(QtGui.QPalette.WindowText, QtGui.QColor(13,13,12)) p.setColor(self.toolBox.backgroundRole(), QtGui.QColor(189,187,185)) p.setColor(QtGui.QPalette.ButtonText, QtGui.QColor(13,13,12)) self.setPalette(p) self.retranslateUi(self) self.tabWidget.setCurrentIndex(0) self.toolBox.setCurrentIndex(0) QtCore.QMetaObject.connectSlotsByName(self) def retranslateUi(self,MainWindow): _translate = QtCore.QCoreApplication.translate MainWindow.setWindowTitle(_translate("MainWindow", "Graphic Interface")) self.label_2.setText(_translate("MainWindow", "Dataset Information:")) self.label_instances.setText(_translate("MainWindow", "Number of instances:")) self.label_classes.setText(_translate("MainWindow", "Number of classes:")) self.label.setText(_translate("MainWindow", "Select a dataset:")) self.tabWidget.setTabText(self.tabWidget.indexOf(self.tab1), _translate("MainWindow", "Preprocessing")) self.toolBox.setItemText(self.toolBox.indexOf(self.page_resize), _translate("MainWindow", "Resizing")) self.label_3.setText(_translate("MainWindow", "Preprocessing parameters:")) self.start.setText(_translate("MainWindow", "Start")) self.pushButton_previous.setText(_translate("MainWindow", "Previous image")) self.pushButton_next.setText(_translate("MainWindow", "Next image")) self.pushButton_table.setText (_translate ("MainWindow", "Show Matrix")) self.pushButton_save.setText (_translate ("MainWindow", "Save")) self.pushButton_return.setText (_translate ("MainWindow", "Back")) self.label_4.setText(_translate("MainWindow", "Visualization:")) self.toolButton.setText(_translate("MainWindow", "...")) self.valider.setText(_translate("MainWindow", "Validate"))
class Window(QMainWindow): def __init__(self): super().__init__() self.label_main() # Kutsuu otsikon funktiota self.nappula() # Kutsuu nappulan funktiota self.setWindowTitle("Cythames") # Pääikkunan titteli self.showMaximized() # Avaa ikkunan näytön resoluutiossa self.create_menu() # Kutsuu create_menu funktiota self.show() # Piirtää objektin näyttöön # Menu-palkin def funktiona def create_menu(self): mainMenu = self.menuBar() #Luo menu-valikko fileMenu = mainMenu.addMenu("File") #Luo ensimmäisen "File" palikan exitAction = QAction(QIcon('exit.png'), "Exit", self) # Luo exit toiminnan ja sille napin nimi valikossa exitAction.setShortcut("Ctrl+X") # Antaa pikatoiminnan exitille exitAction.triggered.connect(self.exit_app) # Kun exit nappia painetaan kutsuu exit_app funktiota optionsAction = QAction("Options", self) # Luo asetukset-napin optionsAction.triggered.connect(self.OptionsWindowOpen) # Kun asetukset-nappia painetaan se kutsuu OptionsWindowOpen funktiota fileMenu.addAction(exitAction) # Piirtää exit-toiminnon nappia fileMenu.addAction(optionsAction) # Piirtää options-toiminnon nappia # Luo otsikko-tyyppisen def statementin def label_main(self): self.hei = "Hei Maailma" self.hello = "Hello World" self.label = QLabel(self.hello) self.frame = QFrame() self.frame.setGeometry(500, 0, 500, 500) self.setCentralWidget(self.frame) self.frameLayout = QVBoxLayout() self.frameLayout.addWidget(self.label) self.frame.setLayout(self.frameLayout) self.mainLayout = QVBoxLayout() self.mainLayout.addWidget(self.frame) self.setLayout(self.mainLayout) self.show() # Luodaan nappula def nappula (self): self.nappi = QPushButton("Nappi", self) self.nappi.move(100,100) self.nappi.clicked.connect(self.magic) self.valinta = False self.nappi.show() # Luodaan algoritmi, joka vaihtaa otsikon nappulan painaessa def magic (self): if self.valinta == False: self.label.setText(self.hei) elif self.valinta == True: self.label.setText(self.hello) self.valinta = not(self.valinta) # Funktio, jonka avulla avataan uusi options-ikkunaa def OptionsWindowOpen(self): self.layout = QVBoxLayout() # Määritetään self.layout QVBox funktioksi self.OptionsWindow_1 = Options(self) # Muuttuja viittaa uuteen options objektiin, eli uuteen options ikkunaan self.OptionsWindow_1.show() # Piirtäää viitatun ikkunan # Funktio, joka sulkee ohjelmaa def exit_app(self): self.close()
class ExtraWindow(QtWidgets.QDialog): def __init__(self, parent): super().__init__(parent) self.setWindowTitle("customer - Table") self.setWindowIcon(QtGui.QIcon("assets/img/icons8-edit-file-64.png")) self.resize(662, 438) self.save_talble_changes = QPushButton("Save table changes", self) self.save_talble_changes.setGeometry(390, 290, 251, 31) self.add_table_main = QPushButton("Add Column ", self) self.add_table_main.setGeometry(390, 260, 251, 28) #self.add_table_main.clicked.connect(self.add_column) self.delet_table_column = QPushButton("Delet table column", self) self.delet_table_column.setGeometry(390, 330, 251, 31) self.not_null_box = QCheckBox("Not Null", self) self.not_null_box.setGeometry(220, 330, 81, 61) self.colm_name_label = QLabel("Column Name:", self) self.colm_name_label.setGeometry(10, 250, 111, 41) self.table_name_label_2 = QLabel("Table Name", self) self.table_name_label_2.setGeometry(10, 10, 91, 21) self.comn_name_line_edit = QLineEdit(self) self.comn_name_line_edit.setGeometry(110, 260, 151, 22) self.data_type_label = QLabel("Data Type", self) self.data_type_label.setGeometry(10, 300, 61, 16) self.data_type_line_edit = QLineEdit(self) self.data_type_line_edit.setGeometry(110, 300, 151, 22) self.table_name_line_edit = QLineEdit(self) self.table_name_line_edit.setGeometry(110, 10, 391, 22) self.foreign_key_box = QCheckBox("Foreign Key", self) self.foreign_key_box.setGeometry(120, 330, 91, 61) self.primary_key_box = QCheckBox("Primary Key", self) self.primary_key_box.setGeometry(20, 330, 111, 61) self.table_widget = QTableWidget(self) if (self.table_widget.columnCount() < 6): self.table_widget.setColumnCount(6) __qtablewidgetitem = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(0, __qtablewidgetitem) __qtablewidgetitem1 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(1, __qtablewidgetitem1) __qtablewidgetitem2 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(2, __qtablewidgetitem2) __qtablewidgetitem3 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(3, __qtablewidgetitem3) __qtablewidgetitem4 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(4, __qtablewidgetitem4) __qtablewidgetitem5 = QTableWidgetItem() self.table_widget.setHorizontalHeaderItem(5, __qtablewidgetitem5) self.table_widget.setGeometry(0, 40, 661, 201) self.table_widget.setColumnWidth(2, 85) self.table_widget.setColumnWidth(3, 85) self.table_widget.setColumnWidth(4, 85) self.frame = QFrame(self) self.frame.setGeometry(0, 390, 661, 51) self.frame.setStyleSheet(u"background-color: rgb(45,45,45);") self.frame.setFrameShape(QFrame.StyledPanel) self.frame.setFrameShadow(QFrame.Raised) self.cancel_button = QPushButton("Cancel button", self.frame) self.cancel_button.setGeometry(550, 10, 111, 28) self.cancel_button.setStyleSheet( u"background-color: rgb(255,255,255);") self.add_table_button = QPushButton("Add table", self.frame) self.add_table_button.setGeometry(442, 10, 101, 28) self.add_table_button.setStyleSheet( u"background-color: rgb(255,255,255);") self.tables() self.show() def tables(self): ''' self.setWindowTitle(QCoreApplication.translate("ExtraWindow", u"Dialog", None)) self.save_talble_changes.setText(QCoreApplication.translate("ExtraWindow", u"Save Table Changes", None)) self.add_table_main.setText(QCoreApplication.translate("ExtraWindow", u"Add Table", None)) self.delet_table_column.setText(QCoreApplication.translate("ExtraWindow", u"Delete Table Column", None)) self.not_null_box.setText(QCoreApplication.translate("ExtraWindow", u"Not null", None)) self.colm_name_label.setText(QCoreApplication.translate("ExtraWindow", u"Colomn Name", None)) self.table_name_label_2.setText(QCoreApplication.translate("ExtraWindow", u"Table Name", None)) self.data_type_label.setText(QCoreApplication.translate("ExtraWindow", u"Data Type", None)) self.foreign_key_box.setText(QCoreApplication.translate("ExtraWindow", u"Foreign key", None)) self.primary_key_box.setText(QCoreApplication.translate("ExtraWindow", u"Primary key", None)) ''' ___qtablewidgetitem = self.table_widget.horizontalHeaderItem(0) ___qtablewidgetitem.setText( QCoreApplication.translate("ExtraWindow", u"Column Name", None)) ___qtablewidgetitem1 = self.table_widget.horizontalHeaderItem(1) ___qtablewidgetitem1.setText( QCoreApplication.translate("ExtraWindow", u"Data Type", None)) ___qtablewidgetitem2 = self.table_widget.horizontalHeaderItem(2) ___qtablewidgetitem2.setText( QCoreApplication.translate("ExtraWindow", u"Primary key", None)) ___qtablewidgetitem3 = self.table_widget.horizontalHeaderItem(3) ___qtablewidgetitem3.setText( QCoreApplication.translate("ExtraWindow", u"Foreign key", None)) ___qtablewidgetitem4 = self.table_widget.horizontalHeaderItem(4) ___qtablewidgetitem4.setText( QCoreApplication.translate("ExtraWindow", u"Not Null", None)) ___qtablewidgetitem5 = self.table_widget.horizontalHeaderItem(5) ___qtablewidgetitem5.setText( QCoreApplication.translate("ExtraWindow", u"Default", None)) '''