From c5488ef7adab36473012ff19e490a0ee4d572e16 Mon Sep 17 00:00:00 2001 From: alessandro90 Date: Sat, 22 Sep 2018 14:44:24 +0200 Subject: [PATCH] Add signals list, search bar, picture display --- icons_imgs/image_not_found.png | Bin 0 -> 2574 bytes main.py | 45 ++++- main_window.ui | 299 ++++++++++++++++++++++++++------- 3 files changed, 283 insertions(+), 61 deletions(-) create mode 100644 icons_imgs/image_not_found.png diff --git a/icons_imgs/image_not_found.png b/icons_imgs/image_not_found.png new file mode 100644 index 0000000000000000000000000000000000000000..b93e5555650675950efdfb154de4a77eab07c33e GIT binary patch literal 2574 zcmZuzdpOhkAKz@VY_4I;kaNnN5fwvnCQ@=OV{9^&cFv)(9G3g7lH;HoC6`WaC9H3W zeTB?rM~7UxFl973EcYT!Mmsyd-}C%_&+mDDf4txC=Xt+B&-?bgpV#M=<>Te1guUmL-$QE%Gvbdf)^b0#O(`>_YTASG+K`8Lcq|<$hY4-ukRJEft^f0}M{I za0cN)=EgrF529v0hU_&)UqIfYRX_Yv#rptLg{BG@1``N}hYnnSIoo;N5A0Uqk z_u94(3NnL!s=gO`sV`>YG(pxP!Y^m znwZmVwQMfNwnRNDD8!AHZ3gtX7n5-REXH83TqF2>1sdQfndqkC8J7&qnErKYu;M+70<3n6q3zH;;o^L;MOCCty#)}vdCHMG(0=~6clN1;>fSr zRP4Xqn=Ef~C3StBcJgCdxXr{LlS$r*91yxbhrI75jIpFOQ*8A0z=j68_X(!b{Ype^ z8;m_C>!#B_0fX~8m(mEz$IeDCwPE;N`?N=qnD z%gKr&NiXfwR>6vBq9^Q7CXAr9H=BC8W!|v`o_*QgY7eEO=lJ6mvHM^KnjDZI2}=^%U*Hl$b&&^uQ+23H zyZWnk-sEq+@5_dgt2O3Ha2*W{&ApH{!C;o-2s4)VFqX=VEhw5A069`{No&C8TCT&A z+Pz!q5xUlCuI>AmgKv^T*Yqz=3R^x~KlhTSfHT?jjFRcCq?cscn>gQ1R)nu^F_ zwo59rO64{bS+SE-2E(9Z>zA`T;>TNg4IcxNvF08F#LMDm3nJ zhBJv4QGTJ{mx13Q2|a*nD0K^#Fbk+MsaudEaPlq)b|3r>NP3ZpI1m*c&P-|c7OaoI zyW8y+kdBF?`bP6wSDc=lohLs|+nJ*+UmIeINQmwHH2DINYtFa{Bv(@aN$|Y~d4^H? z%rNeHB_mGU9Zpbl6h52iIltN*gC2i_Fw!nV=$KG7f#m%kMMmW?9W81;kQ^Kg%$*^` znBursxS9wD<_?dW+ah#>gU7?JKV5T9p)D{kv?rr~wuui>H-uC8eMKL?coC9u7=@N-WU*t75l{e@(TqGV zD(&_0`$bHI_;PI-=LUq9ZLd|x4pd*@Sd~C~*jpotZZt1Y7WK~{YBkxrMy$ykC<={q ziU>HGUQgs^*Y;mO*I*029UsouT zwPcBBRNChvFSS;csq9Nm1Xdr1WS*h?-V~?=Y!y7Qw*pl9R8{7%c?pr%(&a+DVVuX$ zkOjF3Ggn#G6rT|nx#J0A%?BDTr>$Ny7B<=}ojFP=nz+#}UAZm)^i8La`}NMZ{EiE& z>WIXJTjG&0LrvTK4#yyDgzl6|XU$dGrVCVWKb#%@A?)LW;|gDDOYGE#pQ65gUH0CF zg$l+O9W%lVH2DfZLtwoyzu{-u`+s>@pMNwqf1cR%D~h~=>eA>~M?fu1(Yida09ZeCIlElHjzd^*jU;x4B`{ox9rq&NPMm?WAw4RG_w#nY_GppHz-9 z8Mkz(=brDlowxnsMdW=zl|GdXMA$Jp6~IKTi%J=PUTe+3-T!7pijO|^(JQ0yijO18 zDhGFAcS_o<@8^n*b8LKzjAZ;D1pYVskOk0tI2&^z)zW>x&BP!GB6C$n^s&p8XF}<$ z-v44Y$PgSV;h)exItF%T*63XHJoPP0ItCJ*4l`aEy?dn1T4ebt@eCi8?YK#r*lg0~ z)GE>!siXssvSw%K@$BhWqM_v;y$qAPh0`apZ*V(Y9UtWA@)sN&=bwPmaTV#BL*i=w z=TC2}pEFy~HTYmu*7DQH_{ENeV2bu4KcuGBzG-2ccVbL0dqG?>p9(hqNT=UZl>H|H aDKz_Kh$dWkvQx(MActMOT-eUE^uGbBy5cGT literal 0 HcmV?d00001 diff --git a/main.py b/main.py index 1215da2..cac0f1c 100644 --- a/main.py +++ b/main.py @@ -1,9 +1,12 @@ import sys import os +from pandas import read_csv from PyQt5.QtWidgets import (QMainWindow, - QApplication,) + QApplication, + QMessageBox,) from PyQt5.QtGui import QPixmap from PyQt5 import uic +from PyQt5.QtCore import QFileInfo qt_creator_file = "main_window.ui" @@ -13,9 +16,47 @@ class MyApp(QMainWindow, Ui_MainWindow): def __init__(self): super().__init__() self.setupUi(self) + self.show() + self.load_db() + self.display_signals() + self.search_bar.textChanged.connect(self.display_signals) + self.result_list.itemSelectionChanged.connect(self.display_spectrogram) + + def load_db(self): + try: + db = read_csv(os.path.join('Data', 'db.csv'), + sep = '*', + header = None, + prefix = 'signal_') + except FileNotFoundError: + self.signal_names = '' + self.search_bar.setDisabled(True) + box = QMessageBox(self) + box.setStyleSheet(""" + color:#FFFFFF; + """) + box.setWindowTitle("No database") + box.setText("No database available.\n" + "Go to Updates->Download database.") + box.show() + else: + self.signal_names = db['signal_0'] + + def display_signals(self): + self.result_list.clear() + for signal in self.signal_names: + if self.search_bar.text().lower() in signal.lower(): + self.result_list.addItem(signal) + + def display_spectrogram(self): + spectrogram_name = self.result_list.currentItem().text() + path_spectr = os.path.join("Data", "Spectra", spectrogram_name + ".jpg") + if not QFileInfo(path_spectr).exists(): + path_spectr = os.path.join("icons_imgs", "image_not_found.png") + self.spectrogram.setPixmap(QPixmap(path_spectr)) + if __name__ == '__main__': my_app = QApplication(sys.argv) w = MyApp() - w.show() sys.exit(my_app.exec_()) \ No newline at end of file diff --git a/main_window.ui b/main_window.ui index 6814df7..5f2a926 100644 --- a/main_window.ui +++ b/main_window.ui @@ -6,76 +6,131 @@ 0 0 - 800 - 527 + 1000 + 800 MainWindow - background-color: #464646 + QWidget { + background-color: #464646 +} + +QPushButton { + color: #FFFFFF +} + +QProgressBar { + /*border: 2px solid grey;*/ + border-radius: 8px; + background-color: #7a7a7a +} + +QProgressBar::chunk { + background-color: #1d5eff; + width: 20px; + border-radius: 7px +} + + - + + + + 0 + 0 + + Qt::Horizontal - - - - - - - - - - - Search a signal name. - - - color: rgb(255, 255, 255); + + + + 0 + 0 + + + + + 0 + 0 + + + + + 0 + 0 + + + + + 0 + + + 0 + + + 0 + + + 0 + + + 2 + + + + + + + + Search a signal name. + + + color: rgb(255, 255, 255); border: 1px solid gray; border-radius: 5px; - - - - - - - - 0 - 0 - - - - - 20 - 20 - - - - - 20 - 20 - - - - - - - icons_imgs/search_icon.png - - - true - - - - + + - + + + + + 0 + 0 + + + + + 20 + 20 + + + + + 20 + 20 + + + + + + + icons_imgs/search_icon.png + + + true + + + + @@ -83,10 +138,22 @@ border-radius: 5px; 0 + + + - color: rgb(255, 255, 255); -border: 1px solid gray; -border-radius: 15px; + QListWidget { + color: rgb(255, 255, 255); + border: 1px solid gray; + border-radius: 10px; +} + + + + Qt::ScrollBarAsNeeded + + + Qt::ScrollBarAsNeeded @@ -96,6 +163,12 @@ border-radius: 15px; true + + + 1 + 0 + + Qt::LeftToRight @@ -152,9 +225,105 @@ QTabBar::tab:!selected { true + + + 0 + 0 + + + + + 0 + 0 + + Main + + + + 480 + 280 + 221 + 421 + + + + + + + true + + + + + + 50 + 120 + 371 + 381 + + + + + + 40 + 40 + 75 + 23 + + + + PushButton + + + + + + 140 + 40 + 75 + 23 + + + + PushButton + + + + + + 240 + 40 + 75 + 23 + + + + PushButton + + + + + + 110 + 90 + 118 + 23 + + + + + + + 15 + + + false + + + @@ -171,12 +340,24 @@ QTabBar::tab:!selected { 0 0 - 800 + 1000 21 - color: rgb(255, 255, 255); + QMenuBar { + color: rgb(255, 255, 255); +} + +QMenuBar::item:selected { + background:#999999; + color: #1d5eff +} + +QMenu::item:selected { + background-color: #999999; + color: #1d5eff +}