Sistem komutlarını kullanarak nasıl uygulama geliştirilebilir

Selamunaleyküm
Pardusta grafik arayüzlü program geliştirmek istiyorum
geliştirmek için bulduğum en yaygın araçlar qt ve gtk

bunlardan da gtk açık kaynaklı ama gördüğüm kadarıyla hakkında çok fazla eğitim yok
qt ise belli bir kısmı açık kaynaklı ve hakkında bir çok eğitim var bu kitlerden hangisini kullnamam daha mantıklı olur (glade veya qt designer gibi bir sürükle bırak mantığı olursa daha iyi olur)

asıl soruma gelicek olursam sistem komutlarını çalıştırmak için c++ mı yoksa python daha uygun olur. sistem komutlarından kastım sudo apt search gimp çıktısın alıp bir değişkene koyabileceğim veya sudo update-alternatives --config java ayarlama yapabileceğim bir şey

bu konuda fikirlerinizi, alternatifleri, varsa bildiğiniz güzel kaynakları( örnek de olur), eğitimleri yazarsanız çok makbule geçer hem forumda bir kaynak olur

3 Beğeni

Ve aleykümselam.

Bir ara c++, GTK ve QT hakkında uygulamalar yaptığını hatırladığım için @emin.fedar yardımcı olabilir diye onu buraya ekledim. Belki bir fikir verebilir.
Bir de python ve QT hakkında @ismailp vardı. O da bir fikir verebilir diye buraya ekledim.

Bu konuda bilgim olmadığından bir cevap yazamıyorum. Aslında raylib kütüphanesi kullanılarak bile grafik arayüzlü uygulamalar geliştirilebilir.

Pythonda dahili gui kütüphanesi olarak tkinter mevcut diye hatırlıyorum. Yani harici kuruluma gerek yok diye biliyorum.

Ama programlama dilleri için kaynaklar isterseniz, Allen B. Downey’in Green Tea Press – Free books by Allen B. Downey sitesinde ücretsiz dağıttığı kitaplar var.

Tamamı İngilizce dilinde ama yazarı bilgisayar bilimcisi olduğunu söylediği için okunması değerli olan Think Python, Think C++ ve Think Java ve diğer değerli konularda kitapları var. Ama grafik kullanıcı kılavuzları olarak Türkçe kılavuzları bulması biraz uğraştırabilir.

Arayınca Ufuk uzun 'un https://ufukuzun.files.wordpress.com/2014/03/qt-4-ile-cpp-gui-programlama1.pdf sitesindeki Qt 4 ile C++ GUI Programlama kitabını buldum.
QT nin Türkçe vikisi bulundu Qt - frwiki.wiki

Bir de Fırat ÖZGÜL Bey in hazırladaığı https://www.fullportal.org/PROGRAMLAMA/PYTHON/Pygtk2x.pdf PyGTK kitabı var. Ona da bakıp, başka cevap bulamazsanız bu kaynaklar arasından tercih yapabilirsiniz.

Şurada da Java için FX gui kütüphanesinin kılavuzu var: What Is JavaFX? | JavaFX 2 Tutorials and Documentation.

Son olarak şurada ise Java FX için görsel bir kılavuz var: JavaFX Tutorial

3 Beğeni
6 Beğeni

kaynaklar için teşekkürler hocam, mediumdakileri okumuştum ama işletim sistemi ile alakalı bölüm dikkatimi çekmemişti şimdi biraz daha detaylı bakınca aradığımı bulmuş gibiyim ama baya dökümantasyon okumak gerekli gibi
birde dün discord gurubunda görmüştüm bu linki paylaşmıştınız

son olarak Pardus koddaki projelere baktım. Bir projeyi yapmak birçok sistem bilgisi de gerekiyor bununlada ilgli bir kayanak atabilir misiniz? veya bu işlerde öğrenme sıralaması nasıl olmalı şimdiden teşekkürler

Qt & c++ için türkçe kaynak olarak Orhan ÖZTÜRK’ün youtube kanalını önerebilirim. Anlatımı ve qt hakimiyeti çok iyi. Benimde başlangıç yaptığım kaynaktır. Sorununuz olduğunda buradan elimden geldiğince yardımcı olmaya çalışırım. Qt & c++ ile üzerinde halen çalıştığım projem.

3 Beğeni

Bilgiler için teşekkürler,
kanalın abonesi çok az ama hocamız baya güzel anlatıyor ama biraz c++ yazımını bilmek gerekiyor gibi ondan sonra ancak başlanabilir bu arada Projeniz baya detaylıymış ellerinize sağlık.

1 Beğeni

Merhaba,

Kullanıcı ara biriminin ne yapacağı önemli. Belki Electron amacınıza daha uygundur. Benim Gtk tecrübem kısıtlı ve üzerinden uzun süre geçti. Ben Qt tavsiye ederim.

  • Qt’un arkasında kar amacı güden bir şirket var
  • Qt, C++ ile geliştiriliyor ve C++ ile çok rahat kullanılıyor
  • Gtk C ile geliştiriliyor. C++ için de bir kütüphane vardı
  • Qt kütüphaneleri kullanıcı ara birimi dışında bir çok işleve de sahip (mesela ağ bağlantısı)
  • Qt ticari lisansa da sahip
  • Qt Creator oldukça kaliteli bir IDE. Gtk’da dengi bir IDE var mı, bilmiyorum

Qt kullanacaksanız QML ile geliştirmenizi, widgets kullanmamanızı tavsiye ederim.

PyQt ile Python dilinden de Qt’a erişebilirsiniz. Ben sadece C++ ile kullandım. Python bizim ortamımıza uygun değildi. Uygulamanızı gömülü bir cihazda yada Python olmayan bir yerde çalıştırma amacınız yoksa, Python ile daha hızlı ilerleyebilirsiniz. C++ kullanırsanız uygulama üzerinde daha fazla kontrol sahibi olursunuz, uygulamayı farklı cihazlara taşıyabilirsiniz, ancak bunun da bedeli olur. Geliştirme süreniz Python’a göre büyük ihtimalle uzayacaktır.

Hangi dilde olursa olsun sistem komutu çalıştırmanın güvenlik açısından bazı sıkıntıları olacaktır. C ve C++ ile dışarıdan uygulama çalıştırırken fork-exec yapmanız doğru olur, ancak hangi exec'i çağıracağınızı okuyup anlamanız gerekiyor. Dikkatli olmanız gereken bir başka konu da tamponlar. Tamponların kontrolü tamamen geliştiriciye bırakılıyor. exec öncesinde ne komutu çalıştıracağınıza, çevre değişkenlerine, çalışmakta olan (kullanıcı ara birimi) uygulamasının sahip olduğu çevre değişkenlerine, uygulamayı çalıştıran kullanıcının yetki ve kabiliyetlerine ve çalıştırılan uygulamanın standart giriş-çıkış dosya tanımlayıcılarına (standard I/O file descriptors) ne olacağına karar vermeniz gerekiyor. Bu fonksiyonların yanlış kullanımları ciddi güvenlik açıklarına sebep olur.

Bildiğim kadarıyla C yada C++'tan apt'e erişim yok, ancak Python modülleri mevcut. Çılgınlık yapıp Python’u C yada C++'tan çalıştırabilirsiniz ve apt'i kullanabilirsiniz. Başka bir konuda bunun yapıldığına şahit oldum. O yüzden “olmaz öyle şey” demiyorum. C ve C++'tan erişim için libapt-pkg varmış.

sudo'yu bu şekilde kullanıcı ara birimi içerisinden çalıştıramazsınız çünkü sudo genelde tty üzerinden girdi okumayı gerektiriyor. Bu işlem için için çeşitli tavsiyeler var, ancak benim Qt kullanarak böyle bir şey yapmışlığım yok. Şu soru ve cevaplar ilginç görünüyor. Bulabilirseniz, var olan bir kütüphaneyi yada kodu aynen kullanın. Eğer güvenlik konusunda uzmanlığınız yada kodu gözden geçirecek/deneyecek bir güvenlik uzmanına erişimiz yoksa, kendiniz geliştirmeyin. sudo'nun kendisinde bile 10 yıllık güvenlik açığı bulundu, geçtiğimiz yıl yamandı.

2 Beğeni

Bu konu son yanıttan 30 gün sonra otomatik olarak kapatıldı. Yeni yanıt girilmesine izin verilmiyor.