Welcome to the Linux Foundation Forum!
Distro question (experts, please read)
lynkynpark86
Posts: 1
How exactly could I begin making a distro? Not even a distro, just the most basic form on Linux, with a simple gui with only six buttons (for a touchscreen control panel). I want each of the buttons to run a program in C++. How would I do this? Where would I start? I've got great knowledge of linux/unix commands, and reasonable C++ knowledge.
0
Comments
-
If you want to stick to C++, then Qt is a good choice. The libraries have predefined widgets for almost everything, and defining your own widgets is also quite easy. The GUI itself can either be designed graphically (using Qt Designer), or manually (by instantiating and initializing the widgets yourself). When the GUI has been defined, you simply use the "connect" macro to map events (signals) to your own methods (slots). If you're interested, they have extensive tutorials and examples here to get you started.
Here's an example of defining your own widget in Qt, I wrote it when going through their tutorial:class LCDRange : public QWidget { public: LCDRange(QWidget *parent = NULL); }; LCDRange :: LCDRange(QWidget *parent) : QWidget(parent) { // Instantiate widgets QLCDNumber *lcd = new QLCDNumber(2); QSlider *slider = new QSlider(Qt::Horizontal); QVBoxLayout *layout = new QVBoxLayout; // Initialize widgets lcd -> setSegmentStyle(QLCDNumber::Filled); slider -> setRange(0,99); slider -> setValue(0); // Connect signals to slots connect(slider, SIGNAL(valueChanged(int)), lcd, SLOT(display(int))); // Configure layout layout -> addWidget(lcd); layout -> addWidget(slider); setLayout(layout); }Other popular alternatives include wxwidgets and gtkmm. I've never used them before, so I can't speak for those libraries
[edit]
If you're interested in creating your own distribution, you should also take a look at the Linux From Scratch project. They provide a mature handbook that'll hold your hand through the entire process
0 -
You're not trying to build a Linux Distro, you only need to get Linux+XWindow and your own application.
You're looking for a basic kernel, XWindow and a light window manager (TWM for example); then you need to use your own program and a good graphic library to complete your project. QT or GTK+ are common choices and they're not so difficult to find in every distro around.
I did something similar to your project few months ago with Slax and without KDE, I was using TWM but fluxbox or blackbox or metacity are good as well.
Instead of starting your own distro from scratch it could be a better idea to get autodetect features as well as hw recognition and kernel patches from a widespread distro and cut extra pieces (Window manager)0
Categories
- All Categories
- 175 LFX Mentorship
- 175 LFX Mentorship: Linux Kernel
- 745 Linux Foundation IT Professional Programs
- 372 Cloud Engineer IT Professional Program
- 168 Advanced Cloud Engineer IT Professional Program
- 73 DevOps IT Professional Program - Discontinued
- 3 DevOps & GitOps IT Professional Program
- 98 Cloud Native Developer IT Professional Program
- 7.6K Training Courses & Learning Paths
- AI & ML Training
- Blockchain & Decentralized Identity Training
- 1 Cloud & Containers Training
- Cybersecurity Training
- DevOps & Site-Reliability Training
- Linux Kernel Development Training
- Networking Training
- Open Source Best Practice Training
- System Administration Training
- System Engineering Training
- Web & Application Development Training
- 2 LFD103-JP クラス フォーラム
- 4 LFD210-CN Class Forum
- 764 LFD259 Class Forum
- 681 LFS101 Class Forum
- 2 LFS158-JP クラス フォーラム
- 162 LFS207 Class Forum
- 3 LFS207-DE-Klassenforum
- 4 LFS207-JP クラス フォーラム
- 61 LFS241 Class Forum
- 52 LFS242 Class Forum
- 42 LFS243 Class Forum
- 19 LFS244 Class Forum
- 4 LFS250-JP クラス フォーラム
- 166 LFS253 Class Forum
- 1.4K LFS258 Class Forum
- 792 Hardware
- 202 Drivers
- 68 I/O Devices
- 37 Monitors
- 95 Multimedia
- 173 Networking
- 91 Printers & Scanners
- 87 Storage
- 768 Linux Distributions
- 81 Debian
- 67 Fedora
- 22 Linux Mint
- 13 Mageia
- 24 openSUSE
- 150 Red Hat Enterprise
- 31 Slackware
- 13 SUSE Enterprise
- 356 Ubuntu
- 465 Linux System Administration
- 31 Cloud Computing
- 73 Command Line/Scripting
- Github systems admin projects
- 98 Linux Security
- 78 Network Management
- 101 System Management
- 46 Web Management
- 106 Mobile Computing
- 18 Android
- 73 Development
- 1.2K New to Linux
- 1K Getting Started with Linux
- 392 Off Topic
- 121 Introductions
- 181 Small Talk
- 29 Study Material
- 945 Programming and Development
- 310 Kernel Development
- 617 Software Development
- 978 Software
- 370 Applications
- 182 Command Line
- 5 Compiling/Installing
- 68 Games
- 317 Installation
- Archived
- 2 LFD140 Class Forum
Upcoming Training
-
August 20, 2018
Kubernetes Administration (LFS458)
-
August 20, 2018
Linux System Administration (LFS301)
-
August 27, 2018
Open Source Virtualization (LFS462)
-
August 27, 2018
Linux Kernel Debugging and Security (LFD440)