+ 1

Can someone complete this code by adding a button to it? Im not familiar with tk or pygame.

import pygame from tkinter import * pygame.init() window = pygame.display.set_mode((720,454)) pygame.display.set_caption("Window") black = (0,0,0) image=pygame.image.load("C:\Python32\Image224.png").convert_alpha() gameLoop=True while gameLoop: for event in pygame.event.get(): if (event.type==pygame.QUIT): gameLoop=False window.fill(black) window.blit(image, (0,0)) pygame.display.flip() root = Tk()

13th Nov 2017, 12:13 AM
Tanner
12 Answers
+ 3
Put it under the root = Tk() You will have to mess around with it because Iā€™m not familiar with the pygame stuff you are doing but thatā€™s how you make a button with tkinter
20th Nov 2017, 3:48 PM
Arthur Tripp
Arthur Tripp - avatar
+ 3
The YouTube channel sentdex has a good tkinter playlist for python. I would watch it from the beginning so you get a better foundation.
21st Nov 2017, 1:12 AM
Arthur Tripp
Arthur Tripp - avatar
+ 3
Just make sure itā€™s for the version of python because tkinter is a little different in python 2 than 3.
21st Nov 2017, 1:14 AM
Arthur Tripp
Arthur Tripp - avatar
+ 3
The b is what we named the new instance of the button object and .pack() is the member function that packs it into the tk window. So that should work. You know the command=yourFunction part I meant you would put the name of the function you want to call when you press the button not actually put YourFunction right?
21st Nov 2017, 1:32 AM
Arthur Tripp
Arthur Tripp - avatar
+ 3
The .pack() will just pack the button wherever the window has space. You can use .grid() http://effbot.org/tkinterbook/grid.htm that will help you with that. Coloring the button is easy too if you are using Mac tho it wonā€™t work. Use that site and let me know if you get stuck.
22nd Nov 2017, 1:18 AM
Arthur Tripp
Arthur Tripp - avatar
0
b = Button(root, text=ā€œpush meā€, command=yourFunction) b.pack()
13th Nov 2017, 2:19 AM
Arthur Tripp
Arthur Tripp - avatar
0
Where would I put that code? Does it matter?
20th Nov 2017, 4:11 AM
Tanner
0
Do you know of a good tutorial that explains how to use this line of code? Iā€™m close to clueless
21st Nov 2017, 1:09 AM
Tanner
0
I tried doing what you suggested but it is saying the ā€˜bā€™ in b.pack is an invalid syntax. Any ideas?
21st Nov 2017, 1:21 AM
Tanner
0
Ok thanks!! I do now!!šŸ¤£šŸ¤£. So how do I color the button and position the buttons (x,y)
22nd Nov 2017, 1:09 AM
Tanner
0
Ok!! Thank you so much!!!!
22nd Nov 2017, 2:14 AM
Tanner
0
Ok Arthur so I did what you said sent FRC helped a lot but Iā€™ve now ran into a problem with putting text on the buttons. It says the font he used isnā€™t readable. Here is the code if you want to look over it. import pygame from tkinter import * def example(): print("Hi") z = 3+9 print(z) red =(200,0,0) light_red=(255,0,0) blue =(2,57,255) light_blue=(2,128,255) black = (0,0,0) def text_objects(text, font): textSurface = font.render(text, True, black) return textSurface, textSurface.get_rect() pygame.init() window = pygame.display.set_mode((700,700)) pygame.display.set_caption("Window") image=pygame.image.load("C:\Python32\Intro.png").convert_alpha() gameLoop=True while gameLoop: for event in pygame.event.get(): if(event.type==pygame.QUIT): gameLoop=FALSE quit() mouse = pygame.mouse.get_pos() #print(mouse) if 125+100 > mouse[0] > 150 and 450+50 > mouse[1] > 450: pygame.draw.rect(window, light_blue,(125,450,100,50)) else: pygame.draw.rect(window, blue,(125,450,100,50)) smallText = pygame.font.Font("freesandsbold.ttf", 20) textSurf, textRect = text_objects("Start!", smallText) textRect.center = ( (125+(100/2)), (450+(50/2)) ) window.blit(textSurf, textRect) pygame.draw.rect(window, red,(465,450,100,50)) window.blit(image, (100,0)) pygame.display.flip() root = Tk()
22nd Nov 2017, 6:07 AM
Tanner