Posts: 1,849 
	Threads: 21 
	Joined: Sep 2015
	
 Reputation: 
 0
	 
 
	
	
		 (10-21-2018, 03:50 PM)bitsnpcs link Wrote:Thanks for showing the code.  It is too complex for me, I understand <1% of it. 
It is only useful to let me know, I shouldn't have wasted the time on my efforts, and could have put it to a better use lol, and so I will pass and not embarrass myself further     I'm not 100% on what I'm seeing - but your doing a great job [member=411]bitsnpcs[/member] !! - I'm more of a steal a line of code when I can see what it does kinda coder     ... What Jerry's code is (looks like) the Lite Control Center from the 2 series - I was having that feeling perusing the code then saw the name and png extension.. Perhaps knowing/seeing the codes finished product will allow help understand what the lines are doing?? 
If you don't recall... 
 https://www.linuxliteos.com/forums/linux.../#msg17031
	 
	
	
LL4.8 UEFI 64 bit ASUS E402W - AMD E2 (Quad) 1.5Ghz  - 4GB - AMD Mullins Radeon R2 
LL5.8 UEFI 64 bit Test UEFI Kangaroo (Mobile Desktop) - Atom X5-Z8500 1.44Ghz - 2GB - Intel HD Graphics 
LL4.8 64 bit HP 6005- AMD Phenom II X2 - 8GB - AMD/ATI RS880 (HD4200) 
LL3.8 32 bit Dell Inspiron Mini - Atom N270 1.6Ghz - 1GB - Intel Mobile 945GSE Express  -- Shelved  
BACK LL5.8 64 bit Dell Optiplex 160 (Thin) - Atom 230 1.6Ghz - 4GB-SiS 771/671 PCIE VGA - Print Server 
Running Linux Lite since LL2.2 
 
	
	
 
 
	
	
	
		
	Posts: 3,234 
	Threads: 125 
	Joined: Jul 2014
	
 Reputation: 
 0
	 
 
	
	
		[member=5414]firenice03[/member] thank you     for explaining what it is.
	  
	
	
	
	
 
 
	
	
	
		
	Posts: 9,009 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
 12
	 
 
	
	
		Do you have the code for the colored menu version?
	 
	
	
	
	
 
 
	
	
	
		
	Posts: 3,234 
	Threads: 125 
	Joined: Jul 2014
	
 Reputation: 
 0
	 
 
	
		
		
		10-22-2018, 11:43 AM 
(This post was last modified: 10-22-2018, 02:02 PM by bitsnpcs.)
		
	 
	
		#1 - done 
#2 - done 
#3 - now done *** 
#4 - done
 
#5 - not done
 
Asked additional tasks - all done
 
#3*** I don't have the 4 series icon, I borrowed this icon from the forum banner (which displays before login in but not after), to resize it to 24x24 in GIMP and crop, I had to untick the chain to get the size, so it then does not maintain aspect ratio and becomes distorted. A properly made icon appears with the correct aspect ratio, I checked this using one of the Gnome icons.
 
Additionals - 
removed dashy lines from menus so they look better, image 2 below.
  
 
Code 
 Code: #!/usr/bin/env python 
# code by bitsnpcs 
 
from Tkinter import * 
import webbrowser 
 
url1 = 'https://www.linuxliteos.com/development.html#team' 
url2 = 'https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html' 
url3 = 'https://www.linuxliteos.com/' 
url4 = 'https://www.linuxliteos.com/manual/' 
url5 = 'https://www.linuxliteos.com/forums/index.php' 
url6 = 'https://www.linuxliteos.com/donate.html' 
url7 = 'https://www.linuxliteos.com/shop.html' 
url8 = '/usr/share/doc/litemanual/index.html' 
 
# open browser and display url at line 7 thru 13 
def OpenUrl1(): 
    webbrowser.open(url1) 
 
def OpenUrl2(): 
    webbrowser.open(url2) 
 
def OpenUrl3(): 
    webbrowser.open(url3) 
     
def OpenUrl4(): 
    webbrowser.open(url4) 
     
def OpenUrl5(): 
    webbrowser.open(url5) 
 
def OpenUrl6(): 
    webbrowser.open(url6) 
     
def OpenUrl7(): 
    webbrowser.open(url7) 
 
def close_window():  
    window.destroy() 
     
def OpenUrl8(): 
    webbrowser.open(url8) 
     
# Make window 
window = Tk() 
window.title("About Linux Lite") 
window.geometry("242x242") 
window.resizable(0,0) 
window.overrideredirect(True)    
window.eval('tk::PlaceWindow %s center' % window.winfo_pathname(window.winfo_id())) 
 
# adding a menubar 
menubar = Menu(window, bg='#ffe082') 
window.config(menu=menubar) 
 
photovar1 = PhotoImage(file='mlogo.png') 
llmenu = Menubutton(menubar, image=photovar1) 
menubar.add_cascade(image=photovar1, menu=llmenu) 
 
helpmenu = Menu(menubar, tearoff=0) 
menubar.add_cascade(label='Help', menu=helpmenu) 
 
supportmenu = Menu(menubar, tearoff=0) 
menubar.add_cascade(label='Support', menu=supportmenu) 
 
def doHelp(  ): print 'doHelp' 
 
helpmenu.add_command(label='Help Manual (local)', command=OpenUrl8) 
helpmenu.add_command(label='Help Manual (online)', command=OpenUrl4) 
helpmenu.add_command(label='Ask Community', command=OpenUrl5) 
helpmenu = Menu(menubar) 
 
def doSupport(  ): print 'doSupport' 
 
supportmenu.add_command(label='Donate', command=OpenUrl6) 
supportmenu.add_command(label='Shop', command=OpenUrl7) 
supportmenu = Menu(menubar) 
 
# uncomment below to add separator in menu, place code where seperator is wanted 
# filemenu.add_separator(  ) 
 
# adding a logo 
photo=PhotoImage(file="logo.png") 
l1 = Button(image=photo,width=160, height=59, command=OpenUrl3) 
l1.grid(row=4, column=0) 
l1.place(x=36.3, y=12) 
l1 = Label(window, text="     ") 
l1.grid(row=5, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=6, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=7, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=8, column=0, sticky=W) 
 
# adding a frame for ll website button 
GUIFrame1=Frame(window) 
GUIFrame1.grid(row=11, column=0) 
 
#adding a frame for last row of buttons 
GUIFrame2=Frame(window) 
GUIFrame2.grid(row=13, column=0) 
 
# define title, nym, year 
l2 = Label(window, text=u"\u00a9Copyright 2012-2018 Jerry Bezencon", fg="grey", font="none 8") 
l2.grid(row=15, column=0) 
 
l3 = Label(window, text="     ") 
l3.grid(row=0, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=10, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=12, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=14, column=0, sticky=W) 
 
l4 = Label(window, text="Current Version: 5.0") 
l4.grid(row=9, column=0) 
 
# ll website button 
l5 = Label(GUIFrame1, text=" ") 
l5.grid(row=11, column=0, sticky=W) 
Button(GUIFrame1, text="Visit Linux Lite website", width=16, command=OpenUrl3).grid(row=11, column=0) 
 
# last row of buttons 
l6 = Label(GUIFrame2, text=" ") 
l6.grid(row=13, column=0) 
Button(GUIFrame2, text="Credits", width=6, command=OpenUrl1).grid(row=13, column=1) 
Button(GUIFrame2, text="License", width=6, command=OpenUrl2).grid(row=13, column=2) 
Button(GUIFrame2, text="Close", width=6, command=window.destroy).grid(row=13, column=3) 
 
window.mainloop()
  
	 
	
	
	
	
 
 
	
	
	
		
	Posts: 3,234 
	Threads: 125 
	Joined: Jul 2014
	
 Reputation: 
 0
	 
 
	
		
		
		10-22-2018, 12:02 PM 
(This post was last modified: 10-22-2018, 12:06 PM by bitsnpcs.)
		
	 
	
		Coloured menus task. Mouse over of menu title or any item in the menu makes it change colour to grey. 
 
 
Code
 Code: #!/usr/bin/env python 
# code by bitsnpcs 
 
from Tkinter import * 
import webbrowser 
 
url1 = 'https://www.linuxliteos.com/development.html#team' 
url2 = 'https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html' 
url3 = 'https://www.linuxliteos.com/' 
url4 = 'https://www.linuxliteos.com/manual/' 
url5 = 'https://www.linuxliteos.com/forums/index.php' 
url6 = 'https://www.linuxliteos.com/donate.html' 
url7 = 'https://www.linuxliteos.com/shop.html' 
url8 = '/usr/share/doc/litemanual/index.html' 
 
# open browser and display url at line 7 thru 13 
def OpenUrl1(): 
    webbrowser.open(url1) 
 
def OpenUrl2(): 
    webbrowser.open(url2) 
 
def OpenUrl3(): 
    webbrowser.open(url3) 
     
def OpenUrl4(): 
    webbrowser.open(url4) 
     
def OpenUrl5(): 
    webbrowser.open(url5) 
 
def OpenUrl6(): 
    webbrowser.open(url6) 
     
def OpenUrl7(): 
    webbrowser.open(url7) 
 
def close_window():  
    window.destroy() 
     
def OpenUrl8(): 
    webbrowser.open(url8) 
     
# Make window 
window = Tk() 
window.title("About Linux Lite") 
window.geometry("242x242") 
window.resizable(0,0) 
window.overrideredirect(True)    
window.eval('tk::PlaceWindow %s center' % window.winfo_pathname(window.winfo_id())) 
 
# adding a menubar 
menubar = Menu(window, bg='#ffe082') 
window.config(menu=menubar) 
 
photovar1 = PhotoImage(file='mlogo.png') 
llmenu = Menubutton(menubar, image=photovar1) 
menubar.add_cascade(image=photovar1, menu=llmenu) 
 
helpmenu = Menu(menubar, bg='#ffe082', tearoff=0) 
menubar.add_cascade(label='Help', menu=helpmenu) 
 
supportmenu = Menu(menubar, bg='#ffe082', tearoff=0) 
menubar.add_cascade(label='Support', menu=supportmenu) 
 
def doHelp(  ): print 'doHelp' 
 
helpmenu.add_command(label='Help Manual (local)', command=OpenUrl8) 
helpmenu.add_command(label='Help Manual (online)', command=OpenUrl4) 
helpmenu.add_command(label='Ask Community', command=OpenUrl5) 
helpmenu = Menu(menubar) 
 
def doSupport(  ): print 'doSupport' 
 
supportmenu.add_command(label='Donate', command=OpenUrl6) 
supportmenu.add_command(label='Shop', command=OpenUrl7) 
supportmenu = Menu(menubar) 
 
# uncomment below to add separator in menu, place code where seperator is wanted 
# filemenu.add_separator(  ) 
 
# adding a logo 
photo=PhotoImage(file="logo.png") 
l1 = Button(image=photo,width=160, height=59, command=OpenUrl3) 
l1.grid(row=4, column=0) 
l1.place(x=36.3, y=12) 
l1 = Label(window, text="     ") 
l1.grid(row=5, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=6, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=7, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=8, column=0, sticky=W) 
 
# adding a frame for ll website button 
GUIFrame1=Frame(window) 
GUIFrame1.grid(row=11, column=0) 
 
#adding a frame for last row of buttons 
GUIFrame2=Frame(window) 
GUIFrame2.grid(row=13, column=0) 
 
# define title, nym, year 
l2 = Label(window, text=u"\u00a9Copyright 2012-2018 Jerry Bezencon", fg="grey", font="none 8") 
l2.grid(row=15, column=0) 
 
l3 = Label(window, text="     ") 
l3.grid(row=0, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=10, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=12, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=14, column=0, sticky=W) 
 
l4 = Label(window, text="Current Version: 5.0") 
l4.grid(row=9, column=0) 
 
# ll website button 
l5 = Label(GUIFrame1, text=" ") 
l5.grid(row=11, column=0, sticky=W) 
Button(GUIFrame1, text="Visit Linux Lite website", width=16, command=OpenUrl3).grid(row=11, column=0) 
 
# last row of buttons 
l6 = Label(GUIFrame2, text=" ") 
l6.grid(row=13, column=0) 
Button(GUIFrame2, text="Credits", width=6, command=OpenUrl1).grid(row=13, column=1) 
Button(GUIFrame2, text="License", width=6, command=OpenUrl2).grid(row=13, column=2) 
Button(GUIFrame2, text="Close", width=6, command=window.destroy).grid(row=13, column=3) 
 
window.mainloop()
  
	 
	
	
	
	
 
 
	
	
	
		
	Posts: 9,009 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
 12
	 
 
	
	
		Looking terrific [member=411]bitsnpcs[/member] FYI - on 2 or more monitors, the About window appears right in the middle of each screens bezel, so it is effectively cut in half. Can we have it so that the window appears in the middle of the main screen? Thank you.
	 
	
	
	
	
 
 
	
	
	
		
	Posts: 3,234 
	Threads: 125 
	Joined: Jul 2014
	
 Reputation: 
 0
	 
 
	
	
		Example. Tying in Logo, Menu and main site. 
 
	 
	
	
	
	
 
 
	
	
	
		
	Posts: 3,234 
	Threads: 125 
	Joined: Jul 2014
	
 Reputation: 
 0
	 
 
	
		
		
		10-22-2018, 12:48 PM 
(This post was last modified: 10-22-2018, 01:53 PM by bitsnpcs.)
		
	 
	
		I don't understand the code, and will pass on this as well as #5 (as stated earlier) but here it is to use multiple monitors -  
"Tkinter doesn't see if there are 2 or more monitors extended horizontal or vertical. So, you 'll get the total resolution of all screens together and your window will end-up somewhere in the middle of the screens. 
 PyQt from the other hand, doesn't see multi-monitors environment either, but it will get only the resolution of the Top-Left monitor (Imagine 4 monitors, 2 up and 2 down making a square). So, it does the work by putting the window on center of that screen. If you don't want to use both,  PyQt and  Tkinter, maybe it would be better to go with PyQt from start." - quoted from Stack Overflow.
 
Multiple Monitors using tkinter AND PyQT4 - https://stackoverflow.com/questions/3352...in-tkinter
I have re-added the titlebar. 
Do you want the colour of menu drop down changed back to grey or left as is ?
  
code
 Code: #!/usr/bin/env python 
# code by bitsnpcs 
 
from Tkinter import * 
import webbrowser 
 
url1 = 'https://www.linuxliteos.com/development.html#team' 
url2 = 'https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html' 
url3 = 'https://www.linuxliteos.com/' 
url4 = 'https://www.linuxliteos.com/manual/' 
url5 = 'https://www.linuxliteos.com/forums/index.php' 
url6 = 'https://www.linuxliteos.com/donate.html' 
url7 = 'https://www.linuxliteos.com/shop.html' 
url8 = '/usr/share/doc/litemanual/index.html' 
 
# open browser and display url at line 7 thru 13 
def OpenUrl1(): 
    webbrowser.open(url1) 
 
def OpenUrl2(): 
    webbrowser.open(url2) 
 
def OpenUrl3(): 
    webbrowser.open(url3) 
     
def OpenUrl4(): 
    webbrowser.open(url4) 
     
def OpenUrl5(): 
    webbrowser.open(url5) 
 
def OpenUrl6(): 
    webbrowser.open(url6) 
     
def OpenUrl7(): 
    webbrowser.open(url7) 
 
def close_window():  
    window.destroy() 
     
def OpenUrl8(): 
    webbrowser.open(url8) 
     
# Make window 
window = Tk() 
window.title("About Linux Lite") 
window.geometry("242x242") 
window.resizable(0,0) 
 
# adding a menubar 
menubar = Menu(window, bg='#ffe082') 
window.config(menu=menubar) 
 
photovar1 = PhotoImage(file='mlogo.png') 
llmenu = Menubutton(menubar, image=photovar1) 
menubar.add_cascade(image=photovar1, menu=llmenu) 
 
helpmenu = Menu(menubar, bg='#ffe082', tearoff=0) 
menubar.add_cascade(label='Help', menu=helpmenu) 
 
supportmenu = Menu(menubar, bg='#ffe082', tearoff=0) 
menubar.add_cascade(label='Support', menu=supportmenu) 
 
def doHelp(  ): print 'doHelp' 
 
helpmenu.add_command(label='Help Manual (local)', command=OpenUrl8) 
helpmenu.add_command(label='Help Manual (online)', command=OpenUrl4) 
helpmenu.add_command(label='Ask Community', command=OpenUrl5) 
helpmenu = Menu(menubar) 
 
def doSupport(  ): print 'doSupport' 
 
supportmenu.add_command(label='Donate', command=OpenUrl6) 
supportmenu.add_command(label='Shop', command=OpenUrl7) 
supportmenu = Menu(menubar) 
 
# uncomment below to add separator in menu, place code where seperator is wanted 
# filemenu.add_separator(  ) 
 
# adding a logo 
photo=PhotoImage(file="logo.png") 
l1 = Button(image=photo,width=160, height=59, command=OpenUrl3) 
l1.grid(row=4, column=0) 
l1.place(x=36.3, y=12) 
l1 = Label(window, text="     ") 
l1.grid(row=5, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=6, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=7, column=0, sticky=W) 
l1 = Label(window, text="     ") 
l1.grid(row=8, column=0, sticky=W) 
 
# adding a frame for ll website button 
GUIFrame1=Frame(window) 
GUIFrame1.grid(row=11, column=0) 
 
#adding a frame for last row of buttons 
GUIFrame2=Frame(window) 
GUIFrame2.grid(row=13, column=0) 
 
# define title, nym, year 
l2 = Label(window, text=u"\u00a9Copyright 2012-2018 Jerry Bezencon", fg="grey", font="none 8") 
l2.grid(row=15, column=0) 
 
l3 = Label(window, text="     ") 
l3.grid(row=0, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=10, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=12, column=0, sticky=W) 
l3 = Label(window, text="     ") 
l3.grid(row=14, column=0, sticky=W) 
 
l4 = Label(window, text="Current Version: 5.0") 
l4.grid(row=9, column=0) 
 
# ll website button 
l5 = Label(GUIFrame1, text=" ") 
l5.grid(row=11, column=0, sticky=W) 
Button(GUIFrame1, text="Visit Linux Lite website", width=16, command=OpenUrl3).grid(row=11, column=0) 
 
# last row of buttons 
l6 = Label(GUIFrame2, text=" ") 
l6.grid(row=13, column=0) 
Button(GUIFrame2, text="Credits", width=6, command=OpenUrl1).grid(row=13, column=1) 
Button(GUIFrame2, text="License", width=6, command=OpenUrl2).grid(row=13, column=2) 
Button(GUIFrame2, text="Close", width=6, command=window.destroy).grid(row=13, column=3) 
 
window.mainloop()
  
	 
	
	
	
	
 
 
	
	
	
		
	Posts: 9,009 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
 12
	 
 
	
	
		There's no hurry here and keep in mind, you're not obligated to do anything you don't want to    Series 5.x is a long way off. 
You've already made tremendous progress, I'm very proud of you. 
	  
	
	
	
	
 
 
	
	
	
		
	Posts: 9,009 
	Threads: 567 
	Joined: Feb 2014
	
 Reputation: 
 12
	 
 
	
	
		Shall I remove the centering, and re-add the titlebar to the code so it works for users with multiple monitors too ? - Yes please.
	 
	
	
	
	
 
 
	 
 |