Re: Who wants to write a basic About box for Linux Lite? - firenice03 - 10-21-2018
(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-lite-software-development/lite-control-center-beta/msg17031/#msg17031
Re: Who wants to write a basic About box for Linux Lite? - bitsnpcs - 10-21-2018
[member=5414]firenice03[/member] thank you for explaining what it is.
Re: Who wants to write a basic About box for Linux Lite? - Valtam - 10-22-2018
Do you have the code for the colored menu version?
Re: Who wants to write a basic About box for Linux Lite? - bitsnpcs - 10-22-2018
#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.
![[Image: about8.png]](https://preview.ibb.co/etWuY0/about8.png)
![[Image: about9.png]](https://preview.ibb.co/novMD0/about9.png)
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()
Re: Who wants to write a basic About box for Linux Lite? - bitsnpcs - 10-22-2018
Coloured menus task. Mouse over of menu title or any item in the menu makes it change colour to grey.
![[Image: about10.png]](https://preview.ibb.co/fSBObL/about10.png)
![[Image: about11.png]](https://preview.ibb.co/diGmVf/about11.png)
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()
Re: Who wants to write a basic About box for Linux Lite? - Valtam - 10-22-2018
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.
Re: Who wants to write a basic About box for Linux Lite? - bitsnpcs - 10-22-2018
Example. Tying in Logo, Menu and main site.
![[Image: about12.png]](https://preview.ibb.co/hpjei0/about12.png)
Re: Who wants to write a basic About box for Linux Lite? - bitsnpcs - 10-22-2018
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/3352918/how-to-center-a-window-on-the-screen-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 ?
![[Image: about14.png]](https://preview.ibb.co/bDb6Fq/about14.png)
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()
Re: Who wants to write a basic About box for Linux Lite? - Valtam - 10-22-2018
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.
Re: Who wants to write a basic About box for Linux Lite? - Valtam - 10-22-2018
Shall I remove the centering, and re-add the titlebar to the code so it works for users with multiple monitors too ? - Yes please.
|