[RingQML] is online !

244 views
Skip to first unread message

MOHANNAD ALDULAIMI

unread,
Dec 30, 2025, 2:52:21 PM12/30/25
to The Ring Programming Language
Hello Ring Team,
RingQML.jpg

Today I published the source code and binaries for RingQML !

GitHub repository:
https://github.com/mohannad-aldulaimi/ringqml

Requirements:

How to install using RingPM (Ring Package Manager)
https://github.com/mohannad-aldulaimi/ringqml?tab=readme-ov-file#option-1-using-ringpm-recommended

simple test program as startup:
https://github.com/mohannad-aldulaimi/ringqml?tab=readme-ov-file#option-1-using-ringpm-recommended

documentation is coming soon...

I hope that you will enjoy use it.

Best Wishes ...

Mohannad

Mahmoud Fayed

unread,
Dec 30, 2025, 3:04:57 PM12/30/25
to The Ring Programming Language
Hello Mohannad

Thanks for sharing, the logo is wonderful, I like it :D

>> "documentation is coming soon..."

You could start by adding sample to the package, so it can be installed in ring/samples/UsingRingQML folder

At least add the usage example from README.md file as a start

Greetings,
Mahmoud

MOHANNAD ALDULAIMI

unread,
Dec 30, 2025, 3:37:19 PM12/30/25
to The Ring Programming Language
Hello Mahmoud,

Thanks for your suggestion ,applied in this commits :

Best wishes...
Mohannad

Mahmoud Fayed

unread,
Dec 30, 2025, 3:44:48 PM12/30/25
to The Ring Programming Language
Hello Mohannad

You are welcome, I tried the tests and they are working fine, GREAT WORK :D

Added to RingPM Registry & Ring Website - News Section

ringnews.png

Greetings,
Mahmoud

Youssef Saeed

unread,
Dec 30, 2025, 4:41:37 PM12/30/25
to The Ring Programming Language
Hello Mohannad,

Congrats on releasing RingQML!

I will give it a try when I have some time.

Best regards,
Youssef

MOHANNAD ALDULAIMI

unread,
Dec 30, 2025, 4:46:26 PM12/30/25
to The Ring Programming Language

Hello Mahmoud,

Thanks for your support ,and publishing the library in Ring Website …

Best regards...

Mohannad

MOHANNAD ALDULAIMI

unread,
Dec 30, 2025, 4:51:31 PM12/30/25
to The Ring Programming Language
Hello Youssef ,

  I would greatly appreciate your review of the library. Your feedback on the C source code would be especially valuable to me.

Best regards...
Mohannad  

Mahmoud Fayed

unread,
Dec 30, 2025, 5:38:18 PM12/30/25
to The Ring Programming Language
Hello Mohannad

You are welcome :D

Greetings,
Mahmoud

Mansour Ayouni

unread,
Dec 30, 2025, 8:20:55 PM12/30/25
to MOHANNAD ALDULAIMI, The Ring Programming Language
Hello Mohannad,
That's a very nice announcement, and I'm very happy with it...
I'll test the library and I will let you know.
All the best,
Mansour

--

---
You received this message because you are subscribed to the Google Groups "The Ring Programming Language" group.
To unsubscribe from this group and stop receiving emails from it, send an email to ring-lang+...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/ring-lang/33a7bade-c460-40ef-8fbb-73d94915e7c4n%40googlegroups.com.

Mansour Ayouni

unread,
Dec 30, 2025, 8:49:55 PM12/30/25
to MOHANNAD ALDULAIMI, The Ring Programming Language
Hello again,
I tested all the examples and they all work perfectly!
All the best,
Mansour

MOHANNAD ALDULAIMI

unread,
Dec 31, 2025, 9:41:20 AM12/31/25
to The Ring Programming Language

Hello Mansour ,

I tested all the examples and they all work perfectly!”->
This is a very good news …

I have updated the library , so make sure you have the up-to-date version by run:

ringpm update ringqml

Best wishes…
Mohannad

Mahmoud Fayed

unread,
Dec 31, 2025, 9:50:57 AM12/31/25
to The Ring Programming Language
Hello Mohannad


Check (test_coponent_1.ring) and similar files

coponent must be component

Greetings,
Mahmoud

On Tuesday, December 30, 2025 at 10:52:21 PM UTC+3 mohann...@gmail.com wrote:

MOHANNAD ALDULAIMI

unread,
Dec 31, 2025, 10:39:30 AM12/31/25
to The Ring Programming Language

Hello Mahmoud,

Thanks For report , fixed in this commit :fixing files names based on report By Dr. Mahmoud Fayed in Ring Group · mohannad-aldulaimi/ringqml@a38feca.


Best regards,

Mohannad

Bert Mariani

unread,
Dec 31, 2025, 12:49:36 PM12/31/25
to The Ring Programming Language
Hello Mohannad

I did the following today  Dec 30 2025 at 12:45 EST  

C:\ring\bin>ringpm install ringqml from mohannad-aldulaimi  
Installing ringqml (master) ---> RingQML (1.0.0)
Installing codegen (master)
Download Package Files For ringqml
Download File : README.md
Download File : main.ring
Download File : bin/load/ringQML.ring
Download File : libraries/RingQML/callringfuncfromqml.ring
Download File : libraries/RingQML/corefunctions.ring
Download File : libraries/RingQML/globals.ring
Download File : libraries/RingQML/ringQML.ring
Download File : libraries/RingQML/ringQmlRoot.ring
Download File : samples/UsingRingQML/Hello_world.ring
Download File : bin/RingQML.dll
C:\ring\bin>

========================
Ran from NotePad GUI

C:/ring/samples/UsingRingQML/Hello_world.ring


Error (E9) : Can't open file ringQMLObject.ring

C:\ring\bin\load\../../libraries/RingQML/ringQML.ring Line (7) Error (C27) : Syntax Error!

C:\ring\bin\load\../../libraries/RingQML/ringQML.ring errors count : 1

C:\ring\bin\load/ringQML.ring Line (2) Error (C27) : Syntax Error!

C:\ring\bin\load/ringQML.ring errors count : 1

C:/ring/samples/UsingRingQML/Hello_world.ring Line (3) Error (C27) : Syntax Error!

C:/ring/samples/UsingRingQML/Hello_world.ring errors count : 1



MOHANNAD ALDULAIMI

unread,
Dec 31, 2025, 4:23:26 PM12/31/25
to The Ring Programming Language
Hello Bert,

This was an error occurred during developing the ringQMLObject
file , it was writing ‘l’ instead of ‘L’ , and fixed in this commits :

Now you can use this commands :

ringpm remove ringqml

then run :

ringpm install ringqml from mohannad-aldulaimi

you will get this output:

Installing ringqml (master) ---> RingQML (1.0.0) Installing codegen (master) Download Package Files For ringqml Download File : README.md Download File : main.ring Download File : bin/load/ringQML.ring Download File : libraries/RingQML/callringfuncfromqml.ring Download File : libraries/RingQML/corefunctions.ring Download File : libraries/RingQML/globals.ring Download File : libraries/RingQML/ringQML.ring Download File : libraries/RingQML/ringQmlRoot.ring Download File : libraries/RingQML/ringQMLObject.ring Download File : samples/UsingRingQML/Hello_world.ring Download File : bin/RingQML.dll

Best regards,

Mohannad

Antonio F.S.

unread,
Dec 31, 2025, 4:30:48 PM12/31/25
to ring...@googlegroups.com

Hello everyone.

First of all, happy New Year and a prosperous 2026.

Firstly, I apologize for my ignorance regarding QMLRing, and for that reason, I ask the following: since QML is a declarative language based on JavaScript for creating dynamic and animated user interfaces (according to Wikipedia), if Ring already has UI libraries, what does QMLRing actually contribute to the ecosystem?

Best regards,
Antonio F.S.
----------------------------------------------------------------------

El 31/12/25 a las 2:20, Mansour Ayouni escribió:

Mahmoud Fayed

unread,
Dec 31, 2025, 4:43:55 PM12/31/25
to The Ring Programming Language
Hello Antonio

>> "if Ring already has UI libraries, what does QMLRing actually contribute to the ecosystem?"

RingQML brings several important advantages to the Ring ecosystem:
  1. Modern, GPU‑accelerated UI
    Qt Widgets rely on a traditional raster-based rendering model, while QML uses a scene‑graph architecture that runs on the GPU. This enables smooth animations, fluid transitions, and visually rich interfaces with far better performance.
  2. Mobile‑first design
    QML is significantly more suitable for mobile development than Qt Widgets. Its declarative syntax, responsive layout system, and built‑in animation capabilities make it ideal for touch‑based, adaptive UIs.
  3. Full Qt power with minimal maintenance
    By supporting QML, Ring gains access to the entire Qt framework without needing to manually wrap or update every new Qt class. This dramatically reduces maintenance effort, keeps the binding lightweight, and ensures long‑term compatibility with Qt’s evolving ecosystem.
  4. It's not necessary to use RingQt or RingQML directly, the developer could build an abstraction layer on top of them and decide based on needs which one to use.
Greetings,
Mahmoud

MOHANNAD ALDULAIMI

unread,
Dec 31, 2025, 5:02:54 PM12/31/25
to The Ring Programming Language
Hello Mahmoud, Antonio

“It’s not necessary to use RingQt or RingQML directly, the developer could build an abstraction layer on top of them and decide based on needs which one to use.”>>

I completely agree. My experience confirms that QML is superior for mobile devices due to its handling of gestures and design. Moreover, now that we are in 2026, QML’s declarative structure pairs perfectly with AI code generation. We are already seeing AI successfully create complex QML screens that meet modern design requirements.

Best regards,

Mohannad

Antonio F.S.

unread,
Dec 31, 2025, 5:05:16 PM12/31/25
to ring...@googlegroups.com

Hello Mahmoud.

I continue to be pleasantly surprised by your explanations and the speed with which you always respond, whenever possible. It's admirable.

Thank you very much.
Fraternal regards,
Antonio F.S.

------------------------------------------------------------------------

El 31/12/25 a las 22:43, Mahmoud Fayed escribió:

Mahmoud Fayed

unread,
Dec 31, 2025, 5:09:09 PM12/31/25
to The Ring Programming Language
Hello Antonio 

Thank you very much, and Happy New Year to you—full of happiness and wonderful achievements. :D

Greetings,
Mahmoud

Antonio F.S.

unread,
Dec 31, 2025, 5:09:59 PM12/31/25
to ring...@googlegroups.com

Hello MOHANNAD.

Thank you very much.
Kind regards,
Antonio F.S.

-----------------------------------------------------------------------------------

El 31/12/25 a las 23:02, MOHANNAD ALDULAIMI escribió:

Mahmoud Fayed

unread,
Dec 31, 2025, 5:11:56 PM12/31/25
to The Ring Programming Language
Hello Mohanand

>> "I completely agree. My experience confirms that QML is superior for mobile devices due to its handling of gestures and design. Moreover, now that we are in 2026, QML’s declarative structure pairs perfectly with AI code generation. We are already seeing AI successfully create complex QML screens that meet modern design requirements."

This is very nice. One important direction for future development is adding more samples with a polished UI that showcases the beauty of QML. Sharing some applications, as you did before, would also be a very educational resource and extremely helpful for mastering RingQML.

Keep up the GREAT WORK :D

Greetings,
Mahmoud

Mansour Ayouni

unread,
Dec 31, 2025, 5:17:36 PM12/31/25
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

The advantages you mentioned are tremendous!

All the best,
Mansour

Mahmoud Fayed

unread,
Dec 31, 2025, 5:21:17 PM12/31/25
to The Ring Programming Language
Hello Mansour

You are welcome :D

Greetings,
Mahmoud

Mansour Ayouni

unread,
Jan 1, 2026, 9:55:17 AMJan 1
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

One important direction for future development is adding more samples with a polished UI that showcases the beauty of QML

I'm having a LOT of fun working on that! I didn't count the hours I spent since the announcement and found myself writing +30 examples that show the power of Mohannad's RingQML library, and how we can embrace the QML spirit, joined to the Ring intelligence, to make all what we need for modern UIs...

image.png

I'll share the test file as a contribution to RingQML along with a didactic article maybe tonight (it's 4PM Tunisia time ) or at least tomorrow!

All the best,
Mansour

Mahmoud Fayed

unread,
Jan 1, 2026, 11:55:27 AMJan 1
to The Ring Programming Language
Hello Mansour

>> "I'm having a LOT of fun working on that! I didn't count the hours I spent since the announcement and found myself writing +30 examples that show the power of Mohannad's RingQML library, and how we can embrace the QML spirit, joined to the Ring intelligence, to make all what we need for modern UIs..."

>> "I'll share the test file as a contribution to RingQML along with a didactic article maybe tonight (it's 4PM Tunisia time ) or at least tomorrow!"

Very good news, Thanks for sharing, Waiting for the samples :D

Greetings,
Mahmoud

Bert Mariani

unread,
Jan 1, 2026, 11:57:06 AMJan 1
to The Ring Programming Language
Hello Mohannad

Now it Worked !!
Thanks.

===========================
c:\ring>
c:\ring>ringpm remove ringqml
Deleting ringqml
Deleting codegen
Note : Avoid deleting the package (codegen) It's used by the Package (ringcurl)

c:\ring>ringpm install ringqml from mohannad-aldulaimi

Installing ringqml (master) ---> RingQML (1.0.0)
Installing codegen (master)
Download Package Files For ringqml
Download File : README.md
Download File : main.ring
Download File : bin/load/ringQML.ring
Download File : libraries/RingQML/callringfuncfromqml.ring
Download File : libraries/RingQML/corefunctions.ring
Download File : libraries/RingQML/globals.ring
Download File : libraries/RingQML/ringQML.ring
Download File : libraries/RingQML/ringQmlRoot.ring
Download File : libraries/RingQML/ringQMLObject.ring
Download File : samples/UsingRingQML/Hello_world.ring
Download File : bin/RingQML.dll

c:\ring>

========================
Ran from NotePad GUI

C:/ring/samples/UsingRingQML/Hello_world.ring

HelloWorld-Snap1.png

MOHANNAD ALDULAIMI

unread,
Jan 1, 2026, 1:42:03 PMJan 1
to The Ring Programming Language
Hello Mansour ,

“I’m having a LOT of fun working on that! I didn’t count the hours I spent since the announcement and found myself writing +30 examples that show the power of Mohannad’s RingQML library, and how we can embrace the QML spirit, joined to the Ring intelligence, to make all what we need for modern UIs…”

this is very good news , I’m waiting for the samples

Best regards,

Mohannad

MOHANNAD ALDULAIMI

unread,
Jan 1, 2026, 1:44:41 PMJan 1
to The Ring Programming Language
Hello Bert ,

congratulations , you now have the power of QML and Ring !

Best Wishes

Mohannad

Mansour Ayouni

unread,
Jan 1, 2026, 8:09:47 PMJan 1
to MOHANNAD ALDULAIMI, The Ring Programming Language
Hello Mahmoud, Mohannad, and All

This is the first part of my test file of RingQML. It's made to be design-oriented, demonstrating the basic principle a modern programmer should master to develop intuitive GUI applications.

All the tests are working on my side. Looking forward to your feedback...

In the second part I'm working on (and will share tomorrow), I focus on more UI-Controls-oriented use cases (combo-boxes, data grids, datavizs, etc).

Thank you Mouhannad for all the fun I got in preparing these samples !
Thank you Mahmoud for letting Ring be THE LANGUAGE OF BEAUTY AND INNOVATION !
You both helped us enter a new GUI-programming era in Ring through the support of QML.

All the best,
Mansour

ringqmltest.ring

Mahmoud Fayed

unread,
Jan 1, 2026, 10:20:09 PMJan 1
to The Ring Programming Language
Hello Mansour

Very nice samples :D

Suggestions: Separate each sample in a specific ring file for easy testing :D

Greetings,
Mahmoud 

Mansour Ayouni

unread,
Jan 2, 2026, 4:22:38 AMJan 2
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,
You can easily test any sample by just adding an "*/" after the sample title section. This decomments only the sample code since all other samples are commented by the opening "/*--- Sample ..." at the beginning of the title.

image.png

I found this to be very practical so I adopted it in Softanza Test File Format.

Mohannad may separate them in different files like he did for other samples to stay consistent with the structure he opted for for the RingQML library.

Best,
Mansour

Mansour Ayouni

unread,
Jan 2, 2026, 5:37:17 AMJan 2
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud, Mohannad and All,

Here you find the second part of the test file focusing on the use of the various ui-controls provided by QML.

The third and last part will be exploring the use of QML as a bridge to other Qt features without the need of passing by RingQt.

Best,
Mansour
ringqmltest2.ring

Mahmoud Fayed

unread,
Jan 2, 2026, 9:59:47 AMJan 2
to The Ring Programming Language
Hello Mansour

>> "You can easily test any sample by just adding an "*/" after the sample title section."
>> "I found this to be very practical so I adopted it in Softanza Test File Format."

First, thank you for the beautiful samples. However, the way they are executed doesn’t match the quality of the samples themselves. It feels like receiving gold wrapped in a plain sheet of paper instead of a proper gift box.
 
(1) I need to add */ ---> 1 Second
(2) After running the sample, I need to remove */ ---> 1 Second
(3) I need to scroll down to the next sample while searching for the sample start ---> 1 Second
(4) Sometimes I forget step (2) which lead to running a previous sample (not the one I want to test)
(5) Running the last sample ---> Produce syntax error because of the comments/text at the end of the file
(6) At least 3 seconds are waster per sample, we have 30 samples ---> ONE AND HALF MINUTE IS WASTED FROM EACH PROGRAMMER
(7) Doing this with Softanza is more dangerous for two reasons
7.1 The samples are huge
7.2 This doesn't encourage testing automation and detecting errors in the samples

The samples are beautiful, and thanks again for sharing it, but as a team we should provide suggestions that helps us move forward faster.

Greetings,
Mahmoud

Mansour Ayouni

unread,
Jan 2, 2026, 10:35:25 AMJan 2
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

Thank you very mutch for your honest feedback!

I'll think about it...

All the best.
Mansour

Mahmoud Fayed

unread,
Jan 2, 2026, 10:51:53 AMJan 2
to The Ring Programming Language
Hello Mansour

You are welcome 

To quickly do this (if you want), You can add a comment before each sample like

#RingFile: sample1.ring

Then write a tool using Ring that process the file that contains all of the samples, generate separate file for each folder like (samples/sample1.ring)

This way you can continue using the one-file approach that you like, while enable distributing each sample alone.

Greetings,
Mahmoud

Mansour Ayouni

unread,
Jan 2, 2026, 11:40:08 AMJan 2
to Mahmoud Fayed, The Ring Programming Language
Hello Mahmoud,

I planned sutch tool for the future.

Now I've done it manually for the first 30 samples, so our friends can try the theme without difficulty.
I'll do the same for the other tests too.

All the best,
Mansour

ringqml-testfiles.zip

Bert Mariani

unread,
Jan 2, 2026, 11:40:57 AMJan 2
to The Ring Programming Language
Hello Mansour

I downloaded 
      ringqmltest.ring       (ringQMLtest.ring)
      ringqmltest2.ring     (ringQMLtest2.ring

I am a Dumb User 
I used Ring-NotePad
Selected the  file
Clicked on the Debug-Run  gear icon to execute the ring file
Nothing happened !

Why because Everything is Commented Out !
The code is "invisible"  in NotePad window. --- pale Gray

Not Intuitive.

Regards
Bert Mariani

Mansour Ayouni

unread,
Jan 2, 2026, 11:43:30 AMJan 2
to Bert Mariani, The Ring Programming Language
Hello Bert,

Use the splitted-to-distinc-files format (in a zipped folder) I just provided in my previous message.
Happy Testing!

Best,
Mansour

Bert Mariani

unread,
Jan 2, 2026, 11:51:05 AMJan 2
to The Ring Programming Language
Hello Mansour

Why not create a GUI for the User
That lists All the samples as a drop down list
User can Select and click on the sample he wants to execute.

Or Run them All sequentially using a Next Button or Previous Button with separate output.

Mansour Ayouni

unread,
Jan 2, 2026, 12:02:06 PMJan 2
to Bert Mariani, The Ring Programming Language
Hello Bert,

I created these samples to help programmers learn how to craft code using QML and Ring. Seeing the code itself is essential to understanding how things are meant to be written.

Unfortunately, I don’t currently have the time to implement your very good suggestion, though I truly appreciate it.

Best,
Mansour

Mansour Ayouni

unread,
Jan 2, 2026, 12:41:32 PMJan 2
to Bert Mariani, The Ring Programming Language
Hello Mahmoud,

Now the ZIP contains all the 15 thematic subfolders and the 46 samples.

All the best,
Mansour
ringqml-testfiles.zip

Mahmoud Fayed

unread,
Jan 2, 2026, 12:51:31 PMJan 2
to The Ring Programming Language
Hello Mansour

>> "Now the ZIP contains all the 15 thematic subfolders and the 46 samples."

Thank you very much :D

Greetings,
Mahmoud

MOHANNAD ALDULAIMI

unread,
Jan 3, 2026, 2:07:03 AMJan 3
to The Ring Programming Language
Hello Mansour,

Thanks for sharing samples, I’ll test them then add them to GitHub and let you know…

For the single-test file , as Mahmoud mentioned I suggest you to use the reverse method that I used in this file:
ringqml/src/create_ring_qml_production_files.ring at main · mohannad-aldulaimi/ringqml

This file takes all cpp/header files and aggregate them to single header/cpp file for easily injection inside the .pro files.

Best regards,

Mohannad Al-Ayash

Mansour Ayouni

unread,
Jan 3, 2026, 7:29:15 AMJan 3
to MOHANNAD ALDULAIMI, The Ring Programming Language
Hello Mouhannad,
Thanks for the suggestion.
All the best,
Mansour

MOHANNAD ALDULAIMI

unread,
Jan 3, 2026, 2:50:18 PMJan 3
to The Ring Programming Language
Hello Mansour, Mahmoud .Bert Thank you for sharing this valuable samples ,I have fixed all errors and added them to GitHub at this commit :add samples/UsingRingQML/Mansour samples made by : Mansour Ayouni · mohannad-aldulaimi/ringqml@49b815a Important note : I’ll create a package called RingQMLSamples (When I have a time) to store all Samples , but until this time ,you can enjoy using this style of publishing…:D

Also I created Sample Runner App: a simple RingQML App for testing samples:add : samples/UsingRingQML/runSamples.ring file (simple QML app to ru… · mohannad-aldulaimi/ringqml@e0a5839

now you can run:

ringpm remove ringqml

Then Run:

ringpm install ringqml

to get all this samples…

Best regards,

Mohannad Al-Ayash

Reply all
Reply to author
Forward
0 new messages