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.freecinema2022.gq/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,237
Threads: 125
Joined: Jul 2014
Reputation:
0
[member=5414]firenice03[/member] thank you for explaining what it is.
Posts: 8,900
Threads: 544
Joined: Feb 2014
Reputation:
5
Do you have the code for the colored menu version?
Posts: 3,237
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.freecinema2022.gq/development.html#team'
url2 = 'https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html'
url3 = 'https://www.freecinema2022.gq/'
url4 = 'https://www.freecinema2022.gq/manual/'
url5 = 'https://www.freecinema2022.gq/forums/index.php'
url6 = 'https://www.freecinema2022.gq/donate.html'
url7 = 'https://www.freecinema2022.gq/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,237
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.freecinema2022.gq/development.html#team'
url2 = 'https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html'
url3 = 'https://www.freecinema2022.gq/'
url4 = 'https://www.freecinema2022.gq/manual/'
url5 = 'https://www.freecinema2022.gq/forums/index.php'
url6 = 'https://www.freecinema2022.gq/donate.html'
url7 = 'https://www.freecinema2022.gq/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: 8,900
Threads: 544
Joined: Feb 2014
Reputation:
5
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,237
Threads: 125
Joined: Jul 2014
Reputation:
0
Example. Tying in Logo, Menu and main site.
Posts: 3,237
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.freecinema2022.gq/development.html#team'
url2 = 'https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html'
url3 = 'https://www.freecinema2022.gq/'
url4 = 'https://www.freecinema2022.gq/manual/'
url5 = 'https://www.freecinema2022.gq/forums/index.php'
url6 = 'https://www.freecinema2022.gq/donate.html'
url7 = 'https://www.freecinema2022.gq/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: 8,900
Threads: 544
Joined: Feb 2014
Reputation:
5
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: 8,900
Threads: 544
Joined: Feb 2014
Reputation:
5
Shall I remove the centering, and re-add the titlebar to the code so it works for users with multiple monitors too ? - Yes please.
|