PyQt Nedir? Qt Designer Nedir? Python Arayüz Tasarımı

Bu makalede PyQt Nedir? PyQt Nasıl Kullanılır? PyQt5 Ne İşe Yarar? PyQt5 ile Arayüz Geliştirme Nasıl Yapılır? Qt Designer Nedir? Qt Designer Nasıl Kullanılır? Qt Designer Kullanımı Nasıldır? Tkinter Nedir? PyQt5 kullanarak Python ile masaüstü uygulamalar nasıl geliştirilir? gibi soruların cevaplarını bulacağız.

Makalenin sonunda Python ile PyQt ve Qt Designer kullanarak grafiksel kullanıcı arayüzlü uygulamalar geliştirmek için yapılması gereken temel işlemleri öğrenmiş olacağız.

HATIRLATMA: Kod bölümündeki işlemleri tam olarak anlayabilmek için Python ile programlamanın temellerini ve nesne yönelimli programlamanın mantığını bildiğimizi varsayıyoruz.

NOT: Fazla vaktiniz yoksa ve aradığınızı hemen bulmak istiyorsanız lütfen yukarıdaki içindekiler bölümünü kullanın. 

PyQt Nedir?

PyQt, çapraz platform uygulama geliştirmeye yarayan ve C++ ile yazılmış olan Qt kütüphanesinin Python bağlamasıdır. Bir programlama dili değildir. Python ile grafiksel kullanıcı arayüzlü programlar oluşturmamızı sağlar.

PyQt, grafiksel kullanıcı arayüzleri, XML işlemeyi, ağ iletişimini, SQL veritabanlarını ve Qt' de bulunan diğer teknolojileri de kapsayan 620'den fazla sınıfı içerisinde barındırır. PyQt, İngiliz şirket Riverbank Computing Limited tarafından geliştirilmiştir.

PyQt`nin iki sürümü vardır. Bunlar; Qt 4.x ve Qt 5.x için oluşturulan PyQt4 ve yalnızca 5.x için kullanılacak olan PyQt5`dir. Biz bu makaledeki işlemler için PyQt5 sürümünü kullanacağız.

Ek olarak; elbette Python ile grafiksel kullanıcı arayüzlü programlar geliştirmek için kullanabileceğimiz tek araç PyQt değildir. PyQt5 kadar popüler olmasa da geliştiriciler arasında sıklıkla kullanılan bir diğer araç Tkinter` dır. Peki hangisi kullanmalıyız? 

PyQt5 ve Tkinter Arasındaki Fark Nedir? Hangisini Kullanmalı?

Qt ile arayüz programlama, nesneler arasındaki iletişim için sinyaller ve yuvalar etrafında oluşturulur. Tkinter, Python programlama dili ile birlikte gelen grafiksel kullanıcı arayüzü aracıdır ve Python betikleri ile temel ve hızlı bir arayüz tasarlamak isteyenler için yararlı olabilir. 

Ancak deyim yerindeyse gelişmiş bir programlama sonucu almak için bu alandaki neredeyse tüm programcılar PyQt ile birlikte gelen işlevleri tercih eder.

Sonuç olarak; PyQt5 ile Tkinter arasındaki fark uygulamanıza ve gereksinimlerinize göre değişmektedir. Hangisinin daha kullanışlı, pratik ve sonuç odaklı olacağına, bu bilgiler ışığında siz karar vermelisiniz. Bu seçimle ilgili kesin bir yargı maalesef bulunmamaktadır.

Qt Designer Nedir?

Qt Designer, Qt kütüphanesi ile gelen Widget' lar ile grafiksel kullanıcı arayüzleri tasarlamak için kullanılan Qt aracıdır yada programıdır.bkz:GUI Nedir?

Qt Designer kullanarak uzun uzadıya kod yazmadan çok daha efektif, profesyonel ve hızlı bir şekilde tasarımlar oluşturarak Python uygulamamıza daha çok odaklanabiliriz.

PyQt5 Nedir? Python İle Arayüz Oluşturma
PyQt5 Nedir? Qt Designer Nedir? Python İle Arayüz Oluşturma

PyQt5 ile Basit Pencere Oluşturma

Aşağıdaki kodda gördüğünüz üzere, ilk olarak sys adında modülle beraber PyQt5 içerisinde bulunan QApplication ve QWidget sınıfını dahil ediyoruz ki bunlar uygulamamızı çalıştırmamızı ve penceremizi oluşturmamıza yarayacak. 

import sys
from PyQt5.QtWidgets import QApplication, QWidget

app = QApplication(sys.argv)

pencere = QWidget()
pencere.resize(500, 500)
pencere.move(700, 100)
pencere.setWindowTitle('Basit Pencere')
pencere.show()

sys.exit(app.exec_())

Devamında uygulamayı oluşturduktan hemen sonra QWidget sınıfı ile pencere oluşturup bu pencereye çeşitli özellikler (boyut, konum, başlık) ekliyoruz ve show() metodu ile penceremizi gösteriyoruz.

pyqt5-basit-pencere-olusturma
PyQt5 İle Basit Pencere Oluşturma (PyQt5 Dersleri)

Son olarak sys modülünün exit() metoduna, pencerenin açıldığı gibi kapanmaması için yada bunu kullanıcının belirlemesi için exec_() fonksiyonunu gönderiyoruz.

PyQt5 ile Sınıf Kullanarak Pencere Oluşturma

Şimdi ise düz bir şekilde değil de nesne tabanlı programlamanın nimetlerinden yararlanarak aşağıda görmüş olduğunuz gibi daha sade ve anlaşılabilir şekilde penceremizi oluşturalım. Yukarıdaki yaptığımızdan farksız bir şekilde burada da basit bir pencere oluşturuyoruz. 

İlk olarak Pencere isminde bir sınıf oluşturup QWidget sınıfını miras alıyoruz ve Python`da sınıfların constructor fonksiyonu olan __init__ metodunda miras aldığımız sınıfın (QWidget) constructor metodunu super() fonksiyonu ile çağırıyoruz.

Daha sonra ozellikEkle() metodumuzu çağırarak yukarıdaki örnekte yaptığımız gibi penceremize özelliklerimizi ekliyoruz. Buradaki self anahtar kelimesinin oluşturduğumuz Pencere objesine eşit olduğunu zaten biliyorsunuz.

import sys
from PyQt5.QtWidgets import QWidget, QApplication

class Pencere(QWidget):
    def __init__(self):
        super().__init__()
        self.ozellikEkle()

    def ozellikEkle(self):
        self.resize(500, 500)
        self.move(700, 100)
        self.setWindowTitle('Basit Pencere')

app = QApplication(sys.argv)
pencere = Pencere()
pencere.show()
sys.exit(app.exec_())

Sonuç olarak yaptığımız bu işlem, Qt Designer ile oluşturacağımız UI dosyalarını nesne tabanlı programlamayla birleştirip bir nevi daha rahat bir geliştirme ortamına zemin hazırlamaktadır. Bu yüzden bu sınıf yapısının nasıl çalıştığı iyi anlamamız gerekiyor. 

İsterseniz Qt Designer tarafına geçmeden bu penceremize yeni özellikler ekleyelim. Mesela aşağıda gördüğünüz gibi bir input alanı olsun ve yazdır isimli butona bastığımızda yine pencerenin farklı bir yerinde olan label objesine o yazdığımız metni yerleştirsin.

import sys
from PyQt5.QtWidgets import QWidget, QApplication, QLineEdit, QPushButton, QLabel

class Pencere(QWidget):
    def __init__(self):
        super().__init__()
        self.ozellikEkle()
        self.ekOzellikEkle()
        self.buton.clicked.connect(self.tiklandi)

    def ozellikEkle(self):
        self.resize(500, 500)
        self.move(700, 100)
        self.setWindowTitle('Basit Pencere')

    def ekOzellikEkle(self):
        self.input = QLineEdit("Bir Şey Yaz", self)
        self.input.setGeometry(10, 10, 200, 25)

        self.buton = QPushButton("Ekrana Yaz", self)
        self.buton.setGeometry(10, 50, 200, 75)

        self.label = QLabel("Sonuc", self)
        self.label.setGeometry(10, 110, 200, 75)

    def tiklandi(self):
        self.label.setText(self.input.text())

app = QApplication(sys.argv)
pencere = Pencere()
pencere.show()
sys.exit(app.exec_())

Yukarıda görmüş olduğunuz gibi ek olarak tanımladığımız ekOzellikEkle metodu ile input, buton ve label objelerimizi oluşturup pencere içerisindeki konumlarını belirliyoruz. Daha sonrasında oluşturduğumuz butona tıklanma trigger (tetikleme) ekliyoruz ve butona tıklanınca tiklandi metodunun içinde label objesinin setText metodu ile input objesindeki yazıyı label objesine yazdırıyoruz.

pyqt5-sinif-ile-pencere-olusturma
Qt Designer Basit Pencere - Qt Designer ve PyQt5 Kullanımı

Buraya kadar tamam, herhangi bir sorun olmadan PyQt5 ile çalışabiliyoruz ancak “hep bu şekilde tasarımı kodlama ile mi oluşturacağız?” dediğinizi duyar gibiyim. Tabii ki hayır.

Bu örnekleri PyQt5 ile nesne yönelimli programlamanın mantığını kavrayabilmek için gördük. Bu aşamadan sonra Qt Designer aracı ile oluşturacağımız geniş çaplı tasarımları OOP mantığı ile uygulamamıza dahil edip kullanacağız.  bkz:OOP Nedir

PyQt5 ile Qt Designer Kullanımı

Temel seviyede örnek bir tasarım yapmak için Qt Designer programını açalım. Aşağıda gördüğünüz gibi ilk başta dialog ekranından bir pencere türünü seçmemiz gerekiyor.

pyqt5-ile-qt-designer-kullanimi
Qt Designer Arayüz Oluşturma - Qt Designer Örnekleri

Hemen sağ tarafında ön izlemesiyle hangi seçeneğin ne anlama geldiğini görebiliyoruz. 

 Burada QMainWindow ve QWidget seçimi ile alakalı bazen kafa karışıklığı olabiliyor. Hangisini nerede kullanmalı tarzında sorular sorulabiliyor. Şöyle ki uygulamamızın çeşitliliğine göre QMainWindow seçimi birden fazla olabilir ancak basit bir otomasyon programında tek bir QMainWindow ve geri kalan diğer pencereleri Widget ve Dialog şeklinde yapmak daha doğru bir yöntem olarak kabul edilmektedir.

* Peki tüm pencereleri Widget kullanarak yapamaz mıyız? Yapabiliriz ama ilerleyen zamanlarda uygulamamızdaki gereksinimler çeşitlendiğinde MainWindow` un sağlayacağı yararlardan mahrum kalabiliriz. O sebeple bu seçimi kitabına uygun şekilde yapmakta yarar var.

Python ile Qt Designer Kullanımı
Python ile Qt Designer Kullanımı. Qt Designer Nasıl Kullanılır?

MainWindow` u seçtikten sonra penceremizi oluşturuyoruz ve sol menüden istediğimiz widget tipini sürükle bırak şeklinde penceremize dahil ediyoruz. Sağ menüde ise o an seçili olan widget ile ilgili ayarlamaları yapabildiğiniz bölüm var ki anlaşılması çok da zor olmayan bir bölüm burası. O yüzden biraz karıştırarak neyin ne işe yaradığını kendiniz de anlayabilirsiniz. 

! Buradaki önemli nokta; kullanıcı ile etkileşimi olan widget` ların isimlerini (object name) kodlama yaparken kullanmak isteyeceğiniz şekilde yeniden tanımlamanız. Bunu widget` a sağ tıklayıp Change ObjectName diyerek yapabilirsiniz. 

Şimdilik aşağıdaki gibi örnek basit bir arayüz yapalım.

Qt Designer İle Basit Arayüz Tasarımı
Qt Designer Basit Grafiksel Kullanıcı Arayüzü 

Buradaki widget` ların isimleri; Ad Input (input_ad), Soyad Input (input_soyad), Yazdır Butonu (button_yazdir), İsim Gelecek Label (label_isim) şeklinde yaptım. Bu isimler önemli çünkü kodlama kısmında bu isimlere göre işlemler yapacağız. Bu işlemleri yaptıktan sonra ‘ui’ dosyası olarak proje dizinimize istediğimiz bir isimle kaydedelim ve diğer adıma geçelim.

PyQt5 .iu Dosyası Kullanımı (.ui to .py)

Kaydettiğimiz bu .ui dosyasını iki yoldan projemizde kullanabiliriz. Birincisi PyQt5`de ki uic sınıfının loadUi fonksiyonu ile constructor fonksiyonumuzda ui dosyasını projemize entegre edebiliriz.

İkinci ise .ui dosyasını .py uzantılı dosyaya dönüştürüp o dosyayı projemize dahil ederek kullanırız ki benim önerdiğim ve tercih ettiğim yöntem budur.

Çünkü bu şekilde widgetlarımızın isimlerine direk sınıfı dahil ettiğimiz için otomatik tamamlayıcılarla editör üzerinde görebiliyoruz. Ve bu çok pratik olabiliyor, özellikle büyük projelerde. Önce birinci yoldan aşağıdaki gibi loadUi fonksiyonu ile kullanmayı deneyelim;

import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import uic

class Pencere(QMainWindow):
    def __init__(self):
        super().__init__()  # miras alınan sınıfın (QMainWindow) __init__ fonksiyonunu çağırma
        uic.loadUi('hosgeldiniz.ui', self)  # ui dosyasını yükleme

app = QApplication(sys.argv)
pencere = Pencere()
pencere.show()
sys.exit(app.exec_())

İkinci yolda ise öncelikle .ui uzantılı dosyamızı .py uzantılı dosyaya çevirmemiz gerekiyor. Bunu yapmanın birden fazla yolu var ancak biz en pratik yollardan biriyle, VS Code eklentisi olan PYQT Integration ile yapacağız. Bu eklentiyi VS Code editörünüze kurduktan sonra .ui uzantılı dosyanızın üzerine sağ tıklayıp Compile Form seçeneğine tıklamanız yeterli olacaktır.

İsterseniz Compile ettiğimiz bu dosyanın bir kısmına göz atalım;

from PyQt5 import QtCore, QtGui, QtWidgets

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(524, 403)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.button_yazdir = QtWidgets.QPushButton(self.centralwidget)
        self.button_yazdir.setGeometry(QtCore.QRect(340, 20, 111, 91))
        font = QtGui.QFont()
        font.setPointSize(11)
        self.button_yazdir.setFont(font)
        self.button_yazdir.setObjectName("button_yazdir")
        self.input_ad = QtWidgets.QLineEdit(self.centralwidget)
        self.input_ad.setGeometry(QtCore.QRect(149, 20, 171, 41))

Gördüğünüz gibi baştaki örnekte yaptığımız gibi tek tek tüm işlemler Python yorumlamasına dönüşmüş. Tasarımınız ne kadar büyükse bu dosya o kadar uzun olacaktır. 

Gelelim bu dosyayı projemize dahil etmeye. Aşağıda örnekte gördüğünüz gibi, Ui_hosgelidiniz adlı .py uzantılı dosyamızı projemize import ettikten sonra (.ui dosyasını, ‘hosgeldiniz’ şeklinde kaydetmiştim) QMainWindow sınıfı ile birlikte bu dosyanın içerisinde yer alan Ui_MainWindow sınıfını da Pencere sınıfımıza miras alıyoruz.

Ve sonrasında yine super() fonksiyonundan hemen sonra Ui_MainWindow sınıfının içindeki setupUi fonksiyonuna kendi objemizi göndererek(QMainWindow`dan miras alan Pencere sınıfı) arayüzümü bu uygulamaya yansıtıyoruz.

from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
import Ui_hosgeldiniz

class Pencere(QMainWindow, Ui_hosgeldiniz.Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

app = QApplication(sys.argv)
pencere = Pencere()
pencere.show()
sys.exit(app.exec_())

Şimdi sıra geldi arayüzümüzdeki widget` lara erişip onlara işlevler kazandırarak uygulamamızı tamamlamaya. 

Aşağıda yaptığımız işlemler sırasıyla;

  • ‘hoş geldiniz’ ve ‘buraya isim gelecek’ yazılı label widgetlarımızı gizledikten sonra butonumuz için trigger tanımı yapıyoruz.
  • Butona tıklanınca QLineEditlerden aldığımız isim ve soyisimleri ad ve soyad değişkenlerine atayıp label_isim adlı label widget`ımıza bu değişkenleri set ediyoruz.
  • Labelların görünürlüğünü show() metodu ile tekrardan değiştirip pencerede gözükmesini sağlıyoruz.
from PyQt5.QtWidgets import QApplication, QMainWindow
import sys
import Ui_hosgeldiniz

class Pencere(QMainWindow, Ui_hosgeldiniz.Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)
        self.label_isim.hide()
        self.label_hosgeldiniz.hide()
        self.button_yazdir.clicked.connect(self.isimYazdir)

    def isimYazdir(self):
        ad = self.input_ad.text()
        soyad = self.input_soyad.text()
        self.label_isim.setText(ad + " " + soyad)

        self.label_isim.show()
        self.label_hosgeldiniz.show()

app = QApplication(sys.argv)
pencere = Pencere()
pencere.show()
sys.exit(app.exec_())

SONUÇ

Artık Qt Designer ile arayüzler tasarlayarak PyQt5 ile otomasyon yapmak için gerekli temel bilgiyi almış bulunuyoruz.

*** Bundan sonraki hedefiniz küçüktün büyüğe doğru proje geliştirip bolca pratik yapmak olmalıdır. PyQt5 ile kullanabileceğimiz bolca component bulunmaktadır. Bu componentlerin kullanımı için çok fazla Türkçe yazılı kaynak olmasa da deneme yanılmayla kendinizi geliştirebilirsiniz. 

 Örnek olması açısından aşağıda 2019 senesinde yapmış olduğum Öğrenci Takip Sistemi Otomasyonunun kullanıcı giriş penceresinin görünümü bulunmakta. Bu arayüzün .ui dosyalarını ve projenin geri kalanına Github hesabımdan ulaşabilirsiniz.

PyQt5 Qt Designer Örnek Arayüz Tasarımı
PyQt5 Qt Designer Örnek Arayüz Tasarımı - Qt Designer Dersleri

Sorularınız yada takıldığınız herhangi bir konu olursa yorum yapmaktan çekinmeyin. İyi pitonlamalar!

PyQt5: Google Drive

Web geliştirme, programlama ve teknolojik gelişmeler ile yakından ilgilenen olabildiğine meraklı bir insan. Bendeniz Birhan Karahasan.

14 YORUM

Birhan Karahasan

Serpil

07-11-2020

Merhabalar, bu designer bilgisayarda hiçbir şekilde açılmıyor. Sizin bu yazdiginiz kodlar terminalden falan mi? Programı çalıştırdığımda sürekli şöyle diyor: "This application failed to start because no QT platform plugin could be initialized.... diye gidiyor ve doğru bir uyarı, ben 'pip install pyqt5-tools' bu sekilde indirirken içerisinde Qt package olmasi gerekirdi ama bunun aksine bu QT bana bir onceki komuttan gelmis. O da zaten ilk indirmede kullandığım 'pip install pyqt5' fakat benim takip ettigim eğitimde hoca da bu designer.exe tools icerisinde bende neden değil? 2 gündür kafayı yemek üzereyim. Yardımın olursa minnettar kalırım. Teşekkürler şimdiden.

Merhabalar, temiz bir kurulum yapmak en iyisi. Kurulum ve eklenti dosyalarını Google Drive`a yükleyip makalenin sonuna linkini bıraktım. PyQt5`i kurduktan sonra ilgili .bat dosyalarını çalıştırabilirsiniz. Designer, kurulumun içinde gelecektir zaten. Sorun olursa iletişime geçersiniz.

Birhan Karahasan

Serpil

07-11-2020

cok ama cok tesekkur ederimmm

Rica ederim :)

Birhan Karahasan

Murat

19-11-2020

Merhabalar. Öncelile makale için teşekkürler. Şu aralar PyQt5 öğreniyorum ve size bir sorum olucaktı. PyQt5`i güzel bir şekilde öğrenirsem iş bulabilir miyim? İş ilanlarinda veya freelancer sitelerde ismini pek göremiyorum çünkü.

Merhabalar, PyQt5 özelinde profesyonel anlamda iş bulmak pek olası değil açıkçası. Tabiki özel bir otomasyon işini PyQt5 ile halledebilirsin ama profesyonel anlamda sadece PyQt5 ile iş bulmak yaygın değil maalesef. Masaüstü otomasyon için daha çok C# ve Java yaygındır.

Birhan Karahasan

stefan

05-12-2020

Merhabalar,PyQt5 kurulumunu yaptım. Designer programıda yanında geldi. Program üzerine tıkladığımda hatasız bir şekilde çalışıyor. Fakat visual studio code'da kodları yazdığımda "Could not find the Qt platform plugin "windows" in "" This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem." hatasını alıyorum. Lütfen yardımcı olur musunuz?

Merhabalar, sorun aslında PyQt5 dizininden eklenti dizininin bulunamaması. Çözüm için şunları deneyebilirsiniz: -Sistem ortam değişkenlerinde "path" bölümüne "C:\Python37\Lib\site-packages\PyQt5" yolunu ekleyebilirsiniz. -"Python37\Lib\site-packages\PyQt5\Qt\plugins\platforms" klasörünü "Python37\Lib\site-packages\pyqt5_tools\Qt\bin\" dizinine kopyalayabilirsiniz. - Aynı şekilde "\Anaconda3_64\Library\plugins\platforms" klasörünü "\Anaconda3_64\" dizinine kopyalamayı da deneyebilirsiniz.

Birhan Karahasan

stefan

06-12-2020

Geri dönüş yaptığınız için teşekkür ederim. Yazdıklarınızı yaptım fakat herhangi bir değişiklik olmadı. Sorun şu ki normalde olması gerektiği gibi dosyalar PyQt5 ve pyqt5_tools klasörlerinin içinde gelmedi. Designer uygulaması qt5_applications klasörünün içindeydi.

Rica ederim. Bilemedim, siz bence uygulamayı silip yeniden yükleyin, hata mesajında da dediği gibi :)

Birhan Karahasan

tamer

14-12-2020

Birhan Bey merhabalar. Geçen hafta görüşmüştük, sınavlarınız vardı, inşallah iyi geçmiştir. Müsaitseniz uzaktan bağlanıp bana yardımcı olabilir misiniz? İyi çalışmalar.

Merhabalar Tamer Bey, iyi geçti teşekkürler. Tabii, mail adresinizden dönüş sağladım.

Birhan Karahasan

Tamer

09-01-2021

Birhan bey merhaba ben Tamer Bir konuda takıldım müsait iseniz uzaktan bağlanma imkanınız var mi İyi çalışmalar.

Birhan Karahasan

tamer

10-01-2021

Birhan Bey merhabalar. QTableWidget olan verileri nasıl alabilirim. Bana yardımcı olabilir misiniz? İyi çalışmalar.

Merhabalar Tamer Bey, QStandardItemModel ile bir model oluşturup o model üzerinden verilerinizi çekebilirsiniz. Bu arada ben daha çok QTableView kullandım verileri listelemek için. İyi çalışmalar.

Birhan Karahasan

77YÇ77

19-01-2021

Knka sınvdan önce işime yaradı, çok iyi bi yazı olmus tesekkürler yalova üniden selamlar :))

Teşekkürler dostum, umarım geçer not almışsındır :)

Birhan Karahasan

alper ölmez

09-02-2021

signal-slot label etiketi deiğiştirmek için set.label.settext şeklinde mi değiştirmem geriyor

Merhaba Alper, eğer aynı şeyden bahsediyorsak evet, label.setText("bilgi") şeklinde değiştirebilirsin.

Birhan Karahasan

alper ölmez

09-02-2021

teşekkür ederim ilgin için , peki type ("") çıktısı hatalı mıdır ? bir sorum varda bence hatalı ama yine de sormak istiyorum

Rica ederim. Neden hatalı olsun ki? Sonuçta tırnak içinde boş bir karakter. Integer olacak değil ya :)

Birhan Karahasan

Anıl

28-03-2021

Kardesim öncelikle eline sağlık güzel açıklamışsın. Ama benim takıldığım nokta şu ben cmd üzerinden çeviriyorum dosyayı py'ye. Sonrasında onu açtığımda içerisinde ki kodlama bana çok karışık geliyor. Bana sesli bir şekilde anlatabileceğin bir ortamdan ulaşabilme şansın olursa çok sevinirim.

Merhaba Anıl, teşekkürler. Tabii olabilir, kısa bir şekilde yardımcı olmaya çalışırım.

Birhan Karahasan

seda

18-01-2022

merhaba ben Qt desigineri deha yeni kullanmaya başladım ve pycharm a bağlarken sıkıntı çekiyorum sift sağ tuş yapıp powe shell üzerinden yapıyorum ve bu hatayı alıyorum:" no such file or directory" nasıl yapıcam ? eğer anlatabildiysem yardımcı olr musunuz?

Birhan Karahasan

Akın

13-03-2022

Merhaba Birhan bey ben bir kelime oyunu yazıyorum iki tane line edit bir tane label bir tanede button var.line editlerin birine kelimeyi(mesela ankara) diğerine ise o kelime içinde bulunan harfi( a harfi) giriyorum ve labelde ise kelimenin içinde o harf( a harfi ) kaç yerde varsa yazmasını istiyorum gerekli kodları yazdım print ile yazdırabiliyorum (1.harf a ,4.harf a ,6.harf a şeklinde) fakat labelde sadece 6.harf a yazıyor aynen print ile yazdırdığım gibi nasıl yazdırabilirim labeldede.

Yorum Yap Veya Soru Sor

EN ÖNEMLİ YERİ BOŞ BIRAKMAYINIZ (MİN. 5 KARAKTER)
Gerekli
LÜTFEN GEÇERLİ BİR E-POSTA ADRESİ GİRİNİZ

E-Posta Bülteni