Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF

แนะนำ สอบถาม ภาษา C สำหรับผู้เริ่มต้น ภาษา Java ภาษา Python

Moderators: mindphp, ผู้ดูแลกระดาน

ichimarusoichi
PHP Super Member
PHP Super Member
Posts: 352
Joined: 07/01/2019 12:19 pm

Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF

Post by ichimarusoichi » 23/01/2019 3:25 pm

งานที่ผมทำคือจ่าหน้าซองจดหมาย ซึ่งผมได้ทำการสร้างแบบฟอร์มเพื่อกรอกข้อมูลไปแล้ว
ปัญหา
1.สร้างปุ่ม button ไม่ได้ผมเลยปิดคำสั่งสร้างปุ่มไปก่อน
2.ไม่รู้วิธีเก็บค่าที่ได้จากการกรอกแบบฟอร์มเพื่อมาแสดงเป็น PDF
Input

Code: Select all

# -*- coding: utf-8 -*-
from tkinter import *
from tkinter import ttk
gui = Tk()
gui.geometry("1000x500")
gui.title("Python GUI")
photo = PhotoImage(file = "logo.png")
Label(gui, image=photo, compound=RIGHT).grid()
number1 = Text()
number2 = Text()
number3 = Text()
l1 = IntVar()
l2 = StringVar()
l3 = IntVar()
l4 = StringVar()
l5 = StringVar()
l6 = IntVar()
l7 = IntVar()
l8 = IntVar()
l9 = StringVar()
l1 = Label(height="2")
l1.grid(row=0, column=2)
l2 = Label(height="2")
l2.grid(row=1, column=2)
number1 = ttk.Combobox(gui,width=47)
number1['values'] = ("Md.Soft","GG.E-Sport")
number1.grid(row=2,column=1)
number1.current(0)
number2 = ttk.Combobox(gui,width=47)
number2['values'] = ("Tag...","Tag2")
number2.grid(row=3,column=1)
number2.current(0)
number3 = ttk.Combobox(gui,width=27)
number3['values'] = ("",)
number3.grid(row=9,column=3)
number3.current(0)
l3 = Label(text="Tax. ID",height="2")
l3.grid(row=4, column=0)
l4 = Label(text="Address",height="2")
l4.grid(row=5, column=0)
l5 = Label(text="Job Position",height="2")
l5.grid(row=4, column=2)
l6 = Label(text="Phone",height="2")
l6.grid(row=5, column=2)
l7 = Label(text="Mobile",height="2")
l7.grid(row=6, column=2)
l8 = Label(text="Fax",height="2")
l8.grid(row=7, column=2)
l9 = Label(text="Email",height="2")
l9.grid(row=8, column=2)
l10 = Label(text="Title",height="2")
l10.grid(row=9, column=2)
e1 = Entry(width="50")
e1.grid(row=0, column=1)
e2 = Entry(width="50")
e2.grid(row=1, column=1)
e3 = Entry(width="30")
e3.grid(row=4, column=1)
e4 = Entry(width="30")
e4.grid(row=5, column=1)
e5 = Entry(width="30")
e5.grid(row=4, column=3)
e6 = Entry(width="30")
e6.grid(row=5, column=3)
e7 = Entry(width="30")
e7.grid(row=6, column=3)
e8 = Entry(width="30")
e8.grid(row=7, column=3)
e9 = Entry(width="30")
e9.grid(row=8, column=3)
#B = Button(gui, text ="Hello")
#B.pack()
gui = mainloop()
Output
Lettle.PNG
Lettle.PNG (9.34 KiB) Viewed 2277 times
3.ต้องการให้ผลลัพธ์ออกมาตามภาพด้านล่าง
Addressed_the_envelope.PNG
Addressed_the_envelope.PNG (27.24 KiB) Viewed 2277 times
ขอขอบคุณที่สละเวลาเข้ามาตอบคำถามนะครับ

ichimarusoichi
PHP Super Member
PHP Super Member
Posts: 352
Joined: 07/01/2019 12:19 pm

Re: Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF

Post by ichimarusoichi » 23/01/2019 3:51 pm

ตอนนี้ผมแก้ปัญหาข้อที่ 1 ได้แล้วนะครับเปลี่ยนจาก .pack เป็น .grid
Input

Code: Select all

b1 = Button(gui,text = "EXPORT_PDF")
b1.bind('<Button-1>',)
b1.grid(row=10, column=3)
b2 = Button(gui,text = "Cancel")
b2.bind('<Button-1>',hello)
b2.grid(row=10, column=4)
Output
button.PNG
button.PNG (999 Bytes) Viewed 2269 times

tatiya
PHP VIP Members
PHP VIP Members
Posts: 2845
Joined: 09/07/2018 9:35 am

Re: Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF

Post by tatiya » 23/01/2019 4:13 pm

ลองศึกษาดูจาก Code ด้านล่าง
(ผมใช้ python 2.7 จะเรียกใช้ Tk ไม่เหมือนกับ python 3 ลองปรับแล้วรันดู จะเข้าใจวิธีเก็บค่า เมื่อกดปุ่ม action แล้วค่าจะมาตามปุ่ม)

Code: Select all

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from tkinter import *
import tkinter as tk
from tkinter.filedialog import askopenfilename

class main():


    def __init__(self,master):
        self.master = master
        self.username =  StringVar()
        self.password =  StringVar()
        self.hostname =  StringVar()
        self.database =  StringVar()
        self.pathwebdriver = StringVar()
        self.widgets()

    def selection(self):
        root.filename = askopenfilename(initialdir = "/",title = "Select file",filetypes = (("files","*.exe"),("all files","**")))
        fname = root.filename
        self.pathwebdriver.set(fname)

    def login(self):
        link = self.hostname.get() + "/?db=" + self.database.get()
        print(self.pathwebdriver.get())
        print(link)
        print(self.database.get())
        print(self.username.get())
        print(self.password.get())

    def widgets(self):
        self.hostname.set("test name") # 
        self.database.set("test lastname") # 
        self.username.set("5555")
        self.password.set("5555")
        self.pathwebdriver.set("/home/com015/geckodriver")

        self.head = Label(self.master,text = 'LOGIN',font = ('',25),pady = 10)
        self.head.pack()
        self.logf = Frame(self.master,padx =10,pady = 10)
        Label(self.logf,text='Name', font = ('',20),pady=5,padx=5).grid(sticky = W)
        Entry(self.logf,textvariable = self.hostname,bd = 5,font = ('',15)).grid(row=0,column=1)
        Label(self.logf,text = 'Lastname  ',font = ('',20),pady=5,padx=5).grid(sticky = W)
        Entry(self.logf,textvariable = self.database,bd = 5,font = ('',15)).grid(row=1,column=1)
        Label(self.logf,text='Username',font = ('',20),pady=5,padx=5).grid(sticky = W)
        Entry(self.logf,textvariable = self.username,bd = 5,font = ('',15)).grid(row=2,column=1)
        Label(self.logf,text = 'Password   ',font = ('',20),pady=5,padx=5).grid(sticky = W)
        Entry(self.logf,textvariable = self.password,bd = 5,font = ('',15),show = '*').grid(row=3,column=1)
        Label(self.logf,text = 'Path',font = ('',20),pady=5,padx=5 ).grid(sticky = W)
        Entry(self.logf,textvariable = self.pathwebdriver,bd = 5,font = ('',15)).grid(row=4,column=1)
        Label(self.logf, text=u'ปิดเครื่องหลังทำงานเสร็จ', font=('', 8), pady=5, padx=5).grid(row=7,column=00)
        Button(self.logf,text = ' RUN ',bd = 3 ,font = ('',12),padx=5,pady=5, command=self.login).grid(row=7,column=1)
        # Button(self.logf, text=' ปิดปี ', bd=3, font=('', 12), padx=5, pady=5, command=self.new_window).grid(row=7,column=2)
        Button(self.logf,text = ' Browse ' ,bd = 3 ,font = ('',10),padx=5,pady=5, command=self.selection).grid(row=4,column=2)
        Button(self.logf,text = ' Close ',bd = 3 ,font = ('',12),padx=5,pady=5, command=root.destroy).grid(row=7,column=3)
        self.logf.pack()


if __name__ == '__main__':

    root = Tk()
    root.title('Alloy Login')
    main(root)
    root.mainloop()
Image Image Image GOODBYE AND GOODLUCK EVERYONE Love you all bye. Thank you for everything.
26/09/2019

tatiya
PHP VIP Members
PHP VIP Members
Posts: 2845
Joined: 09/07/2018 9:35 am

Re: Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF

Post by tatiya » 23/01/2019 4:36 pm

วิธีสร้าง pdf ด้วย python

Code: Select all

from fpdf import FPDF

pdf = FPDF()
pdf.add_page()
pdf.set_font("Arial", size=12)
pdf.cell(200, 10, txt="Welcome to Python!", ln=1, align="C")
pdf.output("simple_demo.pdf")
Image Image Image GOODBYE AND GOODLUCK EVERYONE Love you all bye. Thank you for everything.
26/09/2019

supriyala
PHP Newbie
PHP Newbie
Posts: 1
Joined: 05/03/2019 2:17 pm

Re: Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF

Post by supriyala » 05/03/2019 2:22 pm

Excellent thread! This topic was really very helpful for me. Thank you!



Nidhitiwari
PHP Newbie
PHP Newbie
Posts: 1
Joined: 22/10/2019 6:40 pm

Re: Q - สอบ ถามเรื่อง python tkinter วิธีทำ PDF

Post by Nidhitiwari » 22/10/2019 6:46 pm

Excellent thread! Thanks for sharing! Keep it up!

Post Reply

Return to “Programming - C/C++ & java & Python”

Users browsing this forum: No registered users and 6 guests